Den*_*s C 7 performance jquery innerhtml internet-explorer-8
我正在使用带有DataTable插件的JQuery,现在我在以下行中遇到了很大的性能问题.
aLocalData[jInner] = nTds[j].innerHTML; // jquery.dataTables.js:2220
Run Code Online (Sandbox Code Playgroud)
我有一个ajax调用,以及HTML格式的结果字符串.我将它们转换为HTML节点,那部分是可以的.
var $result = $('<div/>').html(result).find("*:first");
// simlar to $result=$(result) but much more faster in Fx
Run Code Online (Sandbox Code Playgroud)
然后我激活启用普通表的结果到可排序的数据表.速度在Fx中是可接受的(900行大约4秒),但在IE8中不可接受(超过100秒).
我使用buildin profiler深入检查,发现上面的单行占用了99.9%的时间,我怎样才能加快速度呢?我错过了什么?
nTrs = oSettings.nTable.getElementsByTagName('tbody')[0].childNodes;
for ( i=0, iLen=nTrs.length ; i<iLen ; i++ )
{
if ( nTrs[i].nodeName == "TR" )
{
iThisIndex = oSettings.aoData.length;
oSettings.aoData.push( {
"nTr": nTrs[i],
"_iId": oSettings.iNextId++,
"_aData": [],
"_anHidden": [],
"_sRowStripe": ''
} );
oSettings.aiDisplayMaster.push( iThisIndex );
aLocalData = oSettings.aoData[iThisIndex]._aData;
nTds = nTrs[i].childNodes;
jInner = 0;
for ( j=0, jLen=nTds.length ; j<jLen ; j++ )
{
if ( nTds[j].nodeName == "TD" )
{
aLocalData[jInner] = nTds[j].innerHTML; // jquery.dataTables.js:2220
jInner++;
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
尝试使用YUI DataTable。对于我扔到的任何大桌子来说,速度都非常快。您可以将它与 JQuery 一起使用,没有任何问题。
例如: http: //paulisageek.com/compare/cpu/
归档时间: |
|
查看次数: |
5384 次 |
最近记录: |