2

我正在使用带有 AJAX 内容的JQuery UI 选项卡。

加载的数据是一个DataTables元素,大约有 100 行和 10 列。

FF、Chrome、Safari 和 Opera 一切正常,但 IE9 加载的表格非常慢。

我尝试在 IE9 中加载 DataTable 使用 .load() 方法,这很好,但使用 JQueryUI 选项卡确实不是。我试过 JQueryUI 1.8.22 和 1.9.1 但行为是一样的。

有人已经处理过这样的问题吗?

编辑

实际上,问题与 DataTables 无关,而是由于通过 AJAX 将“大”内容加载到选项卡中。此外,加载的 JS 代码、滚动甚至 CSS :hover 真的不是反应式的

4

2 回答 2

1

当表格隐藏/不可见时,IE 渲染表格的速度特别慢。这是一个记录在案的问题。最好的办法是:

$('#yourTabs').tabs({
    "select": function(ev, ui){
        if(ui.index == whateverIndexYourTableIsIn) {
            dtYourTable.fnAddData(yourData);
        }
    }
});

这只会在表格变得可见时呈现表格(数据),因此在 IE 中几乎不会减慢速度……尽管在这方面 IE 总体上仍然比其他新浏览器慢。

关于IE“隐藏的innerHTML慢”的讨论

http://datatables.net/forums/discussion/1389/x#Item_8

http://datatables.net/forums/discussion/11701/why-does-datatable-run-so-slow-in-ie89-etc../p1

于 2012-11-08T17:39:15.033 回答
0

我使用了固定标签内容高度。我不明白为什么,这会大大减慢 IE(8 和 9)中的浏览器渲染速度。

为了解决这个问题,我用 CSS 属性替换了修复选项卡内容高度,height:90%并在datatable sScrollY": "1000px // 90% of the tab content height. 我设置了一个窗口事件以使用正确的值resize重新绘制datatable以适合窗口大小。

我希望能帮助所有面临同样 IE 问题的人。

于 2012-12-25T08:23:44.443 回答