前端数据库indexdb查询问题?
现在有个场景,后端通过webscoket往前端推数据,前端拿到数据后存储到indexdb中。但是如果webscoket一直不停的推,前端数据库的查询就会卡住,这是什么原因呢?是因为indexdb插入操作的时候表上锁无法执行查询操作吗?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
现在有个场景,后端通过webscoket往前端推数据,前端拿到数据后存储到indexdb中。但是如果webscoket一直不停的推,前端数据库的查询就会卡住,这是什么原因呢?是因为indexdb插入操作的时候表上锁无法执行查询操作吗?
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
接受
或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
发布评论
评论(2)
用队列解决配合Promise.all
目前从你描述可以得知,是操作频繁导致性能出现问题。这时候需要一个队列来处理,这个队列来存储数据,当数据存在一定值时,批量操作,由于indexDB是一个异步的操作,可以封装用promise进行封装操作。目前也有对indexDB的ORM
可以看一下我这篇文章:https://segmentfault.com/a/11...
卡主的原因就是因为没有做异步任务列队。因为第一个数据还未插入,第二个数据就来了。越来越多的插入操作累计导致数据写入阻塞。解决办法就是不管多少个数据,我让你插入完成一条再插入另一条。websocket数据过来了。把他压入列队内,不管多少个。就相当于有个中间区域做缓冲。不会一下塞进去。