有大量的HTML,但我認爲瓶頸將是不正確的:這是當我打開對話框,而不是當我構建字符串HTML(〜35ms),也不會將它附加到對話框容器div(〜50ms)。當在FF下面調用對話框(「打開」)時,我始終獲得1800+ ms,IE7約爲17000(!)ms。我可以活到1800毫秒,但在IE7(99%的用戶羣)中,這太長了。jQuery的UI對話框打開在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');
});
任何想法?我正在嘗試構建一個打印預覽頁面,而不是再往返服務器再次獲取所有數據,但它現在比客戶端快得多。
謝謝。我最終使用iframe作爲「預覽窗口」並隱藏DOM中的元素,但返回後,這確實明顯更快 - 儘管如此,我仍然無法接受我的大數據需求。 – gravyface 2009-06-25 12:34:14
我在IE6和IE8中遇到了同樣的問題。我的解決方法是進行ajax調用來獲取我的對話框的內容,並在打開它之後將其設置爲對話框的內容,如本答案中的建議。 – 2011-03-29 14:49:20