我正在使用JQuery UI Tabs和AJAX内容。
加载的数据是DataTables元素,包含~100行和10列。
FF,Chrome,Safari和Opera的一切都很好,但是对于IE9,加载的表格非常慢。
我试图在IE9中加载DataTable usin .load()方法,这很好,但是使用JQueryUI选项卡实际上并非如此。我尝试过JQueryUI 1.8.22和1.9.1,但行为是一样的。
有人已经处理过这样的问题吗?
修改
事实上,问题并没有与DataTables绑定,而是由于" large"通过AJAX加载到选项卡中的内容。此外,加载的JS代码,滚动甚至CSS:悬停都不是被动的
答案 0 :(得分: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
答案 1 :(得分:0)
我使用了修复标签内容高度。我不明白为什么,这会减慢IE(8和9)中浏览器渲染的速度。
要解决此问题,我已使用CSS属性height:90%
替换了修复标签内容高度,并向datatable
sScrollY": "1000px // 90% of the tab content height
添加了修复表高度。我在resize
上设置了一个窗口事件,用正确的值重新绘制datatable
以适合窗口大小。
我希望能帮助所有面临同样IE问题的人。