jQuery $ .each真的很慢

我正在尝试使用$.each$('')构建一个动态combobox,但在Firefox(在服务器响应后渲染数据需要3/4分钟)在firefox和其他浏览器上它真的很慢它很好。

这是我构建组合的代码

 var sel = ('#myDynCmb'); $.each(dataCollection, function(key,_value) { sel.append($("").val(key).text(_value)); }); 

任何帮助赞赏。

Dom操纵通常很慢,特别是当你附加到dom时。

一个好的做法是将所有html放入var并将此var的内容附加到dom,这导致一个domopération,这要快得多

 var htmlToAppend = ""; $('#myDynCmb').empty().append(htmlToAppend); 

这样的事情

它可能是IE上的渲染问题(通常在DOM操作上很慢)。

你可以尝试这样的事情:

 var dummyList = $(""); $.each(dataCollection, function(key,_value) { dummyList.append($("").val(key).text(_value)); }); $('#myDynCmb').empty().append(dummyList.find('option')); 

因此,您将选项加载到虚拟列表(不在DOM中),然后将所有元素添加到列表中(在DOM中)。

尝试所有的解决方案,但它仍然是令人尴尬的慢,所以我不得不把它切换到经典的JavaScript,新的选项,它现在超级快