gpt4 book ai didi

jquery - 使用 jQuery.data() 丢失数据

转载 作者:行者123 更新时间:2023-12-01 05:10:45 31 4
gpt4 key购买 nike

我正在开发一个实用程序 Web 应用程序,以帮助操作一些特定于域的 XML 数据。

流程如下:

  1. 加载 XML 文件
  2. 使用浏览器的 native XML 对象(不是 jQuery!)解析 XML 文件并转换为 JavaScript 对象。
  3. 使用 $(document).data() 存储结果对象
  4. 迭代对象并提取附加信息,将其存储在另一个 $(document).data() 槽中
#4 需要相当多的时间,因此我使用 window.setTimeout() 将工作分成多个 block 。

这是函数:

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() 是一个极其糟糕的主意吗?
  • 使用 jQuery.data() 可以存储的数据量是否有限制?我的 XML 文件约为 100KB。

最佳答案

这太尴尬了……

我在代码中的其他地方使用了 Array.splice() 。这样就可以了。是的。

关于jquery - 使用 jQuery.data() 丢失数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1786743/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com