我正在开发一个实用程序Web应用程序,以帮助操作某些特定于域的XML数据。
流程如下:
window.setTimeout()
将工作分成几块。
这是功能:
function explodeDataStep(index, max) {
var data = $(document).data('data');
var lists = $(document).data('lists');
$debug('explodeDataStep', index, $(document).data('data'), $.data(document));
var count = 0;
for (index; index < data.vehicles.length; index++) {
var vehicle = data.vehicles[index];
if ($.inArray(vehicle.make, lists.make) < 0) lists.make.push(vehicle.make);
if ($.grep(lists.model, function(v) { return v.make == vehicle.make && v.model == vehicle.model; }).length == 0) lists.model.push({ make: vehicle.make, model: vehicle.model });
if ($.inArray(vehicle.module, lists.module) < 0) lists.module.push(vehicle.module);
if ($.inArray(vehicle.doorlock, lists.doorlock) < 0) lists.doorlock.push(vehicle.doorlock);
if ($.inArray(vehicle.doorlockCombo, lists.doorlockCombo) < 0) lists.doorlockCombo.push(vehicle.doorlockCombo);
if ($.inArray(vehicle.tHarness, lists.tHarness) < 0) lists.tHarness.push(vehicle.tHarness);
count++;
if (count >= max) {
index++;
updateExplodeDataStatus(index);
window.setTimeout(explodeDataStep, 10, index, max);
return;
}
}
finishExplodeData();
}
出于某种原因,当索引达到480左右时,我注意到存储在$(document).data('data')中的一些数据刚刚消失,而我无法终生我找出原因。
所以,以下是一些可能导致答案的问题:
window.setTimeout()
是一个非常糟糕的主意吗?答案 0 :(得分:1)
这令人尴尬......
我在我的代码中的其他地方使用了Array.splice()。那就行了。是的。
答案 1 :(得分:0)
在这种情况下,我不会使用jQuery,而是将您的信息存储为本机JavaScript对象。