Tôi có một trang có các trình đơn thả xuống chuỗi. Chọn một số option
từ số select
đầu tiên điền số thứ hai và chọn một số option
từ số thứ hai select
trả về một bảng kết quả phù hợp bằng cách sử dụng hàm innerHtml
trên một trang trống div
trên trang.Làm cách nào để bắt buộc thu thập bộ sưu tập Javascript trong IE? IE hoạt động rất chậm sau khi thực hiện các cuộc gọi AJAX và thao tác DOM
Vấn đề là, khi tôi đã thực hiện các lựa chọn của mình và một lượng đáng kể dữ liệu được đưa lên trang, tất cả các Javascript tiếp theo trên trang chạy đặc biệt chậm. Dường như tất cả dữ liệu tôi đã lấy lại thông qua AJAX để điền vào số div
vẫn đang chiếm nhiều bộ nhớ. Tôi đã thử đặt đối tượng trả về có chứa kết quả AJAX thành null
sau khi gọi innerHtml
nhưng không có may mắn.
Firefox, Safari, Chrome và Opera đều cho thấy không có sự xuống cấp hiệu suất khi tôi sử dụng Javascript để chèn nhiều dữ liệu vào DOM, nhưng trong IE, nó rất rõ ràng. Để kiểm tra xem đó là vấn đề Javascript/DOM chứ không phải vấn đề IE cũ đơn giản, tôi đã tạo một phiên bản của trang trả về tất cả kết quả trên tải ban đầu, thay vì qua AJAX/Javascript và thấy IE không có vấn đề về hiệu suất.
FYI, tôi đang sử dụng phương thức jQuery.get của jQuery để thực hiện cuộc gọi AJAX.
EDIT Đây là những gì tôi đang làm:
<script type="text/javascript">
function onFinalSelection() {
var searchParameter = jQuery("#second-select").val();
jQuery.get("pageReturningAjax.php",
{SEARCH_PARAMETER: searchParameter},
function(data) {
jQuery("#result-div").get(0).innerHtml = data;
//jQuery("#result-div").html(data); //Tried this, same problem
data = null;
},
"html");
}
</script>
tôi muốn lưu ý rằng điều này chỉ trở thành một vấn đề khi sự trở lại data
là khá lớn. Nó liên quan trực tiếp đến kích thước, vì tôi có thể thấy sự suy giảm vừa phải cho kết quả kích thước trung bình và chỉ có sự suy giảm lớn khi nó là một vài trăm bản ghi + được trả về.
Không may mắn với việc sử dụng các chức năng html hoặc xóa. Tôi chỉ trả về một bảng văn bản (nhiều hàng, nhưng chỉ văn bản) –
Bạn có ràng buộc các sự kiện với các hàng, ô, văn bản bên trong các ô không? Bạn chèn bao nhiêu dữ liệu? –
Có tối đa 2000 hàng, tổng cộng ~ 250kb. Tôi chỉ ràng buộc một sự kiện duy nhất trên DIV chứa toàn bộ kết quả. –