Javascript 用HTML填充jQuery对象数组的最快方法是什么
我有一个很大的内存jquery元素数组,需要用HTML填充这些元素。需要澄清的是,这些元素不在DOM中,而是按如下方式存储:Javascript 用HTML填充jQuery对象数组的最快方法是什么,javascript,jquery,Javascript,Jquery,我有一个很大的内存jquery元素数组,需要用HTML填充这些元素。需要澄清的是,这些元素不在DOM中,而是按如下方式存储: var els = [$('<div>'), $('<div>'), $('<div>')]; etc..etc... var els=[$(''),$(''),$('');等等……等等。。。 当用户滚动时(想想无限滚动),这些元素被不断地追加和删除到DOM中;而且无论这些元素是否在DOM中,都需要对它们进行操作。因此,需要将它们存
var els = [$('<div>'), $('<div>'), $('<div>')]; etc..etc...
var els=[$(''),$(''),$('');等等……等等。。。
当用户滚动时(想想无限滚动),这些元素被不断地追加和删除到DOM中;而且无论这些元素是否在DOM中,都需要对它们进行操作。因此,需要将它们存储在一个数组中
在加载时,我需要用html填充这些空jQuery对象,并使问题变得更加棘手,每个片段都需要一个Canvas元素。通过放弃jQuery并使用原始javascript进行这些操作,我显著地提高了在大型阵列上完成所需的时间。这是我目前的方法:
var canvas = document.createElement('canvas')
//draw stuff on in memory canvas here
var html = '<div>'
+'<div>'
+'<button>'
/*imagine more elements here*/
+'</button>'
+'</div>'
'</div>';
els[index][0].innerHTML = html;
els[index][0].firstChlid().firstChild().appendChild(canvas);
var canvas=document.createElement('canvas')
//在内存画布上画东西
var html=''
+''
+''
/*想象这里有更多的元素*/
+''
+''
'';
els[index][0].innerHTML=html;
els[index][0].firstChlid().firstChild().appendChild(画布);
我想知道的是,这是否是在已经创建的空jquery对象数组中推送HTML的最快方法。如果不是,你有什么建议
提前谢谢。在你做任何事情之前,它必须立即全部加载吗?或者你可以懒洋洋地加载它吗?documentFragments和带有元素克隆的原生JS是最快的,而不是带有一堆jQuery对象的数组。很遗憾,是的。。。它需要从一开始就加载。它实际上比一个简单的无限卷轴要复杂得多,但为了这个问题的简单性,我就是这样描述它的。@adeneo我完全理解这一点。但这并不是让html快速进入DOM,而是填充jQuery对象。是的,使用片段和本机节点列表将比使用数组和jQuery对象快得多。