【发布时间】:2020-07-24 08:32:07
【问题描述】:
我有这个代码
$.getJSON( "https://domain.ltd/parse_data.php", function( data_recieved ) {
if (data_recieved.length) {
$.each(data_recieved, function(index, element) {
$( ".items" ).append( '<span>' + element.name + ' = ' + element.amount + '</span><br />' );
});
}
})
如您所见,它正在解析 json 并使用append 显示结果。
但是,如果响应中有 500 行数据,则最多可能需要 30 秒来追加所有 500 行。发生这种情况时,网站没有响应。
不仅如此,我的 CPU 使用率达到了 50%。
我做错了吗?也许有一种更有效的方法来解析这么多数据并使用 jQuery 动态显示它?
【问题讨论】:
-
@Jeto 我不确定我是否做对了。我怎么会提前知道行数?也许您可以在答案中详细说明一下?
-
那个小提琴只是为了展示使用 jQuery 追加 500 行应该没有任何问题。所以不管是什么花费了这么多时间/处理能力,它可能不是它。
-
为什么不将所有跨度连接到一个变量中,然后在循环外只调用一次
.append()?...这样可以避免循环中的 DOM 遍历。 -
@Jeto 好吧,json 页面在不到一秒的时间内打开,然后 jQuery 最多需要 30 秒来解析它。在我的真实代码中有更多的 html 和数据点,也许这就是它没有简化版本那么快的原因。
标签: javascript jquery