gra*_*ace 5 performance jquery jquery-ui modal-dialog internet-explorer-7
有大量的HTML,但我认为瓶颈是不正确的:它是在我打开对话框时,而不是在我构建HTML字符串(~35ms)时,也不是在我将其附加到对话框容器div(~50ms).当在FF下面调用对话框("打开")时,我总是得到1800+ ms,IE7大约是17000(!)ms.我可以忍受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');
});
Run Code Online (Sandbox Code Playgroud)
有任何想法吗?我正在尝试构建一个打印预览页面,而不想再次往服务器再次获取所有数据,但它现在比客户端快得多.
小智 6
我在使用jQuery UI Dialog时遇到了类似的问题.要加快速度,请先尝试打开对话框,然后附加数据.
$('#print-box').dialog('open');
$('#print-box').html(tmp.join(''));
Run Code Online (Sandbox Code Playgroud)
这似乎对我有所帮助.还要检查要附加的字符串中是否有任何损坏的标记或格式错误的HTML.