在IE7中,打开jquery UI对话框令人费解

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.