前端数据库indexdb查询问题?

大群
  • 68

现在有个场景,后端通过webscoket往前端推数据,前端拿到数据后存储到indexdb中。但是如果webscoket一直不停的推,前端数据库的查询就会卡住,这是什么原因呢?是因为indexdb插入操作的时候表上锁无法执行查询操作吗?

回复
阅读 1.1k
2 个回答

可以看一下我这篇文章:https://segmentfault.com/a/11...
卡主的原因就是因为没有做异步任务列队。因为第一个数据还未插入,第二个数据就来了。越来越多的插入操作累计导致数据写入阻塞。解决办法就是不管多少个数据,我让你插入完成一条再插入另一条。websocket数据过来了。把他压入列队内,不管多少个。就相当于有个中间区域做缓冲。不会一下塞进去。

用队列解决配合Promise.all
目前从你描述可以得知,是操作频繁导致性能出现问题。这时候需要一个队列来处理,这个队列来存储数据,当数据存在一定值时,批量操作,由于indexDB是一个异步的操作,可以封装用promise进行封装操作。目前也有对indexDB的ORM

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
宣传栏