HUH函數(shù)
2019-12-25 15:55:30
我正在使用Javascript解析具有大約3500個(gè)元素的XML文件。我正在使用jQuery“每個(gè)”函數(shù),但可以使用任何形式的循環(huán)。問題是循環(huán)執(zhí)行時(shí)瀏覽器凍結(jié)了幾秒鐘。停止凍結(jié)瀏覽器而不降低代碼速度的最佳方法是什么?$(xmlDoc).find("Object").each(function() { //Processing here});
3 回答

交互式愛情
TA貢獻(xiàn)1712條經(jīng)驗(yàn) 獲得超3個(gè)贊
在處理之間設(shè)置一個(gè)超時(shí),以防止循環(huán)周期耗盡所有瀏覽器資源??偣仓恍枰ㄙM(fèi)幾秒鐘的時(shí)間來處理和遍歷所有內(nèi)容,這對(duì)于3500個(gè)元素而言并非不合理。
var xmlElements = $(xmlDoc).find('Object');
var processing = function() {
var element = xmlElements.shift();
//process element;
if (xmlElements.length > 0) {
setTimeout(processing, 5);
}
}
processing();

江戶川亂折騰
TA貢獻(xiàn)1851條經(jīng)驗(yàn) 獲得超5個(gè)贊
我會(huì)考慮將3500個(gè)元素從xml轉(zhuǎn)換為JSON,或者甚至更好地將其上傳到轉(zhuǎn)換后的服務(wù)器,這樣它就可以從getgo原生到JS。
這將最大程度地減少您的負(fù)載,并且也會(huì)使文件大小也變小。
添加回答
舉報(bào)
0/150
提交
取消