有大量的 HTML,但我认为瓶颈是不正确的:它是在我打开对话框时,而不是在我构建 HTML 字符串(~35ms)时,也不是在我将它附加到对话容器 div (~50ms)。在 FF 中调用 dialog("open") 下面时,我一直得到 1800+ 毫秒,IE7 大约是 17000(!)毫秒。我可以忍受 1800 毫秒,但在 IE7(我的用户群的 99%)中,这太长了。
// 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');
});
有任何想法吗?我正在尝试构建一个打印预览页面,并且不想再次往返服务器以再次获取所有数据,但它现在比客户端快得多。