我昨天发布了类似的内容,但是它起作用了,但是只删除了数据中的最后一个对象。
我想发生什么
此ajax上传将处理大量数据,因此我正在使用indexeddb。这也将在手机上使用。因此,我希望它一次上传一个项目,如果一个项目未能从数据中删除之前的项目,那么它们就不需要再次上传所有内容。
我已经尝试过async = false,这完全符合我的需要,但是这个冰柜浏览器。
当前代码 试图注释掉可能造成混淆的任何位,当前,这仅在完成后才删除最后一项。
function uploadData(e) {
//Get Database
var transaction = db.transaction(["data"], "readonly");
var objectStore = transaction.objectStore("data");
var cursor = objectStore.openCursor();
//Starts Looping
cursor.onsuccess = function(e) {
var res = e.target.result;
if (res) {
if (navigator.onLine) {
$('.popup-heading').text('Uploading...');
var passData = {
client_id: res.value.client_id,
parent_id: res.value.parent_id,
storename: res.value.storename,
image: res.value.image,
key: res.key,
};
var jsonData = JSON.stringify(passData);
$.ajax({
url: "{{ path('destination_app_ajax') }}",
type: "post",
// Works but freezes browser
/*async, flase*/
data: {
"json": passData
},
success: function(JsonData) {
//Delete item once successfull
var t = db.transaction(["data"], "readwrite");
var request = t.objectStore("data").delete(passData.key);
t.oncomplete = function(event) {
console.log('item deleted');
};
},
error: function() {
$('.popup-heading').text('Upload Failed!');
}
});
} else {
$('.popup-heading').text('Please find stronger signal or wifi connection');
}
res.
continue ();
}
}
}
听起来您有范围问题passData
。在循环内部,但在定义之前,请var passData = ...
尝试使用匿名函数包装代码块:
(function() {
/* Your code here */
}());
那应该防止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
回调(不重新定义)。
本文向大家介绍nhibernate 全部删除孤立项,包括了nhibernate 全部删除孤立项的使用技巧和注意事项,需要的朋友参考一下 示例 保存/更新/删除对象时,请检查关联并保存/更新/删除找到的所有对象。除此之外,当一个对象从关联中删除并且不与另一个对象(孤立的)关联时,也将其删除。
问题内容: 首先,我要说我正在SQL Server 2005上运行,所以我没有访问权限。 我有一个约有15万行的表,每天都要从一个文本文件中进行更新。当行从文本文件中掉出时,我需要从数据库中删除它们,如果它们发生更改或是新的,则需要相应地进行更新/插入。 经过一些测试,我发现从性能角度来看,完全删除然后从文本文件中批量插入要比逐行读取文件进行更新/插入要快得多,这是指数级的。但是,我最近遇到了一些
我想在当前的中启动一个通知,即。当我按下通知时,我想输入。 但是,我不希望当前的在中完成。因为我正在接收数据,当我按下后退按钮时,我想留在。 关键是我不想让结束,不管我目前在哪个中。 那我该怎么办? 这是密码 问题是: 现在我输入,当我按下后退按钮时,我返回桌面。意味着已经完成了我不想要的。 这里是主要的
问题内容: 案例我在/ notes / get / 1 /中,其中id =1,并且我在note.html中创建了“删除注释”链接。我需要它从数据库和应用程序中删除 当前 注释,然后重定向到/ notes / all。您能帮我处理def delete中的代码吗? models.py: urls.py: views.py: 问题答案: from django.shortcuts import get_
本文向大家介绍易语言删除文本中的全部空格功能,包括了易语言删除文本中的全部空格功能的使用技巧和注意事项,需要的朋友参考一下 删全部空命令 英文命令:TrimAll 操作系统支持:Windows、Linux 所属类别:文本操作 返回一个文本,其中包含被删除了所有全角或半角空格的指定文本。 语法: 文本型 删全部空 (欲删除空格的文本) 例程 说明 通过“删全部空”命令将一段文本中的空格全部
要实现同图片所示内容,前4列内容都是固定的。 渲染代码如下 <template> <div> <el-table :data="waterData" border :span-method="handleSpanM"> <script> export default { data() { }, methods: { }, mounted() { }, 渲染后结果 怎么实现效果呢前4列除了第一列和第