我一直在尝试使用Web SQL 数据库 API在基于 webkit 的浏览器中。我一直在使用异步API主要在用户界面线程 and a 网络工作者。两个线程都访问同一个数据库(正如您所知,其背后是 sqlite)
一切都表现良好,但偶尔会有事务丢失或一个事务失败,这似乎是一种计时/竞争条件。看来对底层 sqlite 数据库的访问不是线程安全的。
多一点背景。我的网络工作者只是对一个表执行查询,该表可能有一条记录从主用户界面线程插入其中。
我想知道它是否确实记录在某处本地/网络存储可以从 ui 线程和 web 工作线程安全地访问吗?我在某处读到过索引数据库 API是线程安全的,但这对我现在没有帮助,因为我的目标浏览器对它的支持很差/不存在(至少我这么认为 - 我从http://caniuse.com http://caniuse.com )
任何见解将不胜感激
您不能使用 WebWorkers 中的 localStorage 或 sessionStorage。
虽然两者都是同步操作,但对于简单的数据写入和读取来说,它们并不是真正的问题。该问题在浏览器启动时更相关,但这是浏览器实现问题。
看看这个,应该有帮助:http://www.nczonline.net/blog/2012/04/25/the-performance-of-localstorage-revisited/ http://www.nczonline.net/blog/2012/04/25/the-performance-of-localstorage-revisited/
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)