1
0
mirror of https://github.com/DataTables/DataTables.git synced 2025-02-20 18:54:15 +01:00

Update media/src/core/core.scrolling.js

Tweaks to improve performance
Cache nodes
Restructure to use nextSibling rather than childNodes
(small increase in file size, but may be a slight decrease in minified size)
This commit is contained in:
Tim Tucker 2012-08-31 16:25:35 -03:00
parent 0d47107906
commit ce59c7403f

View File

@ -1,5 +1,4 @@
/** /**
* Add any control elements for the table - specifically scrolling * Add any control elements for the table - specifically scrolling
* @param {object} oSettings dataTables settings object * @param {object} oSettings dataTables settings object
@ -484,27 +483,31 @@ function _fnScrollDraw ( o )
*/ */
function _fnApplyToChildren( fn, an1, an2 ) function _fnApplyToChildren( fn, an1, an2 )
{ {
var index=0, var index=0, i=0, iLen=an1.length;
i, iLen, j, jLen; var nNode1, nNode2;
for ( i=0, iLen=an1.length ; i<iLen ; i++ ) while ( i < iLen )
{ {
for ( j=0, jLen=an1[i].childNodes.length ; j<jLen ; j++ ) nNode1 = an1[i].firstChild;
nNode2 = an2 ? an2[i].firstChild : null;
while ( nNode1 )
{ {
if ( an1[i].childNodes[j].nodeType == 1 ) if ( nNode1.nodeType === 1 )
{ {
if ( an2 ) if ( an2 )
{ {
fn( an1[i].childNodes[j], an2[i].childNodes[j], index ); fn( nNode1, nNode2, index );
} }
else else
{ {
fn( an1[i].childNodes[j], index ); fn( nNode1, index );
} }
index++; index++;
} }
nNode1 = nNode1.nextSibling;
nNode2 = an2 ? nNode2.nextSibling : null;
} }
i++;
} }
} }