听起来您有范围问题
passData。在循环内部,但在定义之前,请
var passData = ...尝试使用匿名函数包装代码块:
(function() { }());那应该防止
passData泄漏到全局范围内,这似乎就是为什么您的IDB代码仅在最后一个循环中起作用的原因。(
passData每次AJAX响应完成之前都会重新定义。)
更新
:没有循环,您正在处理回调。我看到的情况是,您正在重新定义
onsuccess每个Ajax请求的处理程序(并覆盖除最后一个值之外的所有值),并重用同一事务。尝试将此事务代码移到AJAX请求的成功回调中:
//Get Database var transaction = db.transaction(["data"], "readonly"); var objectStore = transaction.objectStore("data"); var cursor = objectStore.openCursor();这将创建一个关闭并
delete在每个响应上提交您的事务。这意味着每个AJAX请求一个事务,每个AJAX请求一个
onsuccess回调(不重新定义)。



