Có một số lượng lớn HTML, nhưng tôi nghĩ rằng nút cổ chai sẽ không chính xác: đó là khi tôi mở hộp thoại, chứ không phải khi tôi tạo chuỗi HTML (~ 35ms), cũng không phải khi tôi thêm nó vào div vùng chứa hộp thoại (~ 50ms). Khi gọi hộp thoại ("mở") bên dưới Trong FF, tôi liên tục nhận được 1800+ ms, IE7 là khoảng 17000 (!) Ms. Tôi có thể sống với 1800ms, nhưng trong IE7 (99% cơ sở người dùng của tôi), đó là cách quá dài.Mở hộp thoại giao diện người dùng jquery chậm phát triển trong IE7
// prep dialog
$("#print-box").dialog({
bgiframe: false,
width:900,
height: 1000,
modal: true,
autoOpen: false,
draggable: false
});
// display selected items in print preview modal
$("#print-preview").click(function() {
$('#print-box').empty();
var tmp = ['<div class="print-container">'];
var rows = $('[name="print-this-listing"]:checked').parents("div.listing").clone();
for (var i=0; i < rows.length; i++) {
tmp.push($(rows[i]).html());
}
tmp.push('</div>');
$('#print-box').html(tmp.join(''));
$('#print-box').dialog('open');
});
Bất kỳ ý tưởng nào? Tôi đang cố gắng xây dựng trang xem trước bản in và không muốn thực hiện một chuyến đi khứ hồi khác tới máy chủ để tìm nạp lại tất cả dữ liệu đó, nhưng nhanh hơn rất nhiều so với phía máy khách ngay bây giờ.
Cảm ơn. Tôi đã kết thúc bằng cách sử dụng một khung nội tuyến như là một "cửa sổ xem trước" và ẩn các phần tử từ DOM, nhưng đã quay lại và điều này thực sự nhanh hơn - vẫn không thể chấp nhận được cho các yêu cầu dữ liệu lớn của tôi, nhưng nhanh hơn. – gravyface
Tôi gặp phải vấn đề tương tự trong IE6 và IE8. Sửa lỗi của tôi là thực hiện cuộc gọi ajax để nhận nội dung trong hộp thoại của tôi và đặt nó làm nội dung của hộp thoại sau khi mở hộp thoại, như được đề xuất trong câu trả lời này. –