我可以在浏览器ui线程和Web工作线程中安全地使用html5中的本地存储

pau*_*aul 6 javascript web-worker local-storage web-sql

我一直在尝试在基于webkit的浏览器中使用web sql数据库api.我一直在主ui线程web worker中使用async api.两个线程都访问同一个数据库(你知道这是sqlite的继承)

一切都表现良好,但偶尔交易丢失或一次交易失败,似乎是时机/竞争条件.似乎对底层sqlite数据库的访问不是线程安全的.

多一点背景.我的Web工作者只是对一个表执行查询,该表可能从主ui线程中插入了一条记录.

我想知道是否实际记录了哪些本地/网络存储可以安全地从ui线程和Web工作线程访问?我已经读过某个地方,indexeddb api是线程安全的,但是这对我现在没有帮助,因为浏览器支持它对于我所针对的浏览器来说很少/不存在(至少我是这么认为的 - 我从http获取我的信息)://caniuse.com)

任何见解都会感激不尽

Fra*_*isc 2

您不能使用 WebWorkers 中的 localStorage 或 sessionStorage。

虽然两者都是同步操作,但对于简单的数据写入和读取来说,它们并不是真正的问题。该问题在浏览器启动时更相关,但这是浏览器实现问题。

看看这个,它应该有帮助:http://www.nczonline.net/blog/2012/04/25/the-performance-of-localstorage-revisited/