Javascript 当使用新值循环2000个元素的数组时,浏览器更新元素需要很长时间

Javascript 当使用新值循环2000个元素的数组时,浏览器更新元素需要很长时间,javascript,html,json,Javascript,Html,Json,我正在重构我的代码,这样我的搜索机制搜索结果将从ajax/json获得结果。但是,在数据填充到selecttag之前,浏览器似乎停止了响应(仅限当前页面选项卡) 这就是我正在做的 for (i = 0; i < jsonData["outlet"].length; i++) { outlet.innerHTML += "<option value=" + jsonData["outlet"][i] + ">" + jsonData["outlet"][i] +

我正在重构我的代码,这样我的搜索机制搜索结果将从ajax/json获得结果。但是,在数据填充到
select
tag之前,浏览器似乎停止了响应(仅限当前页面选项卡)

这就是我正在做的

for (i = 0; i < jsonData["outlet"].length; i++) {
         outlet.innerHTML += "<option value=" + jsonData["outlet"][i] + ">" + jsonData["outlet"][i] + "</option>";
    }
for(i=0;i

这些json数据的长度约为2000,将所有数据以字符串形式缓冲在内存中。这是相对较快的

然后,当字符串完成时,将其输出到HTML

在当前代码中,每次迭代都会强制图形回流。每次迭代页面都必须重新计算整个页面布局。这需要大量的cpu周期

函数getBuffer(jsonData){ var缓冲区=[]; 对于(i=0;i对于(flood=3;flood2000不应该是一个问题。您确定此代码是导致页面速度变慢的原因吗?请尝试删除它,或尝试将2000降低到一个较小的数字,并检查是否有任何更改。