Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/449.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在IndexedDB中,是否存在这样的场景:事务中的数据被写入磁盘,但oncomplete不会触发?_Javascript_Google Chrome_Indexeddb - Fatal编程技术网

Javascript 在IndexedDB中,是否存在这样的场景:事务中的数据被写入磁盘,但oncomplete不会触发?

Javascript 在IndexedDB中,是否存在这样的场景:事务中的数据被写入磁盘,但oncomplete不会触发?,javascript,google-chrome,indexeddb,Javascript,Google Chrome,Indexeddb,据我所知,IndexedDB交易有两种潜在结果: 存在一些错误,因此不会写入事务中的任何更改,并且不会触发oncomplete 一切都正常,所以更改被写入,然后oncomplete激发 但是我听到一些用户报告说我的应用程序间歇性地不能在Chrome上运行,其中一个用户声称已经调试到了将oncomplete视为问题的程度。他说,有时oncomplete不会启动,即使数据正在保存,并且不会产生错误消息 我知道这可能是不正确的,因为我自己还没有观察到这个问题,没有人能想出一套复制它的步骤。但我以前在I

据我所知,IndexedDB交易有两种潜在结果:

存在一些错误,因此不会写入事务中的任何更改,并且不会触发oncomplete

一切都正常,所以更改被写入,然后oncomplete激发

但是我听到一些用户报告说我的应用程序间歇性地不能在Chrome上运行,其中一个用户声称已经调试到了将oncomplete视为问题的程度。他说,有时oncomplete不会启动,即使数据正在保存,并且不会产生错误消息

我知道这可能是不正确的,因为我自己还没有观察到这个问题,没有人能想出一套复制它的步骤。但我以前在IndexedDB中看到过奇怪的特定于浏览器的错误,特别是在将多个事务中的大量数据写入大型对象存储时,这就是问题的所在。有人注意到这样的事情吗?

我快速看了一下,上面写着

要确定事务是否已成功完成,请侦听事务的complete事件,而不是特定请求的success事件,因为事务在成功事件触发后仍可能失败

这说明可能存在请求成功的情况,即即使事务本身失败,某些数据也可能被写入,例如写入中断


监听完整的事件仍然是明智的,但如果这导致了问题,您也可能希望监听请求是否成功,因为您可以识别客户端机器上发生错误的位置并相应地处理错误,例如,检查写了多少,然后再写更多。

我注意到,当1个开发控制台或2个运行时间很长的tx时,tx很奇怪。如果没有这两个,就没有问题。chromimun中报告了一些与这些相关的bug,但我认为这些bug还没有关闭。你有与chromimun bug相关的链接吗?这是一个运行时间很长的事务。抱歉,我找不到它们。无论如何,长时间运行的tx在浏览器中不会得到很好的处理,因为它们占用内存。当不使用div控制台时,您会发现这些问题神奇地消失了。