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,新的选项,它现在超级快