我正在使用Javascript解析具有大约3500个元素的XML文件。我正在使用jQuery“每个”函数,但可以使用任何形式的循环。问题是循环执行时浏览器冻结了几秒钟。停止冻结浏览器而不降低代码速度的最佳方法是什么?$(xmlDoc).find("Object").each(function() { //Processing here});
3 回答
交互式爱情
TA贡献1712条经验 获得超3个赞
在处理之间设置一个超时,以防止循环周期耗尽所有浏览器资源。总共只需要花费几秒钟的时间来处理和遍历所有内容,这对于3500个元素而言并非不合理。
var xmlElements = $(xmlDoc).find('Object');
var processing = function() {
var element = xmlElements.shift();
//process element;
if (xmlElements.length > 0) {
setTimeout(processing, 5);
}
}
processing();
江户川乱折腾
TA贡献1851条经验 获得超5个赞
我会考虑将3500个元素从xml转换为JSON,或者甚至更好地将其上传到转换后的服务器,这样它就可以从getgo原生到JS。
这将最大程度地减少您的负载,并且也会使文件大小也变小。
添加回答
举报
0/150
提交
取消