神奇,前端不用 redis 也能实现消息队列——indexedDB
引言
在 JS 开发过程中,我们常常会用到 async/await 的写法,来实现异步编程,但是这样的操作也会产生并发编程的常见问题。在后端处理上,我们会使用共享内存的 lock 锁机制,CSP/Actor 机制等常见的类库方案,也会使用 sqlite、mysql、redis 这些具备 transaction(事务)特性的数据库来实现消息队列。而此次在 Browser 前端开发中,我尝试用 IndexedDB 来实现对 async/await 的解决方案。
什么是 IndexedDB
在浏览器中,我们更多接触到的是 Cookie 和 LocalStorage。
在 mdn 中是这样介绍:
复制代码
如何使用 IndexedDB
IndexedDB 版本支持情况
玩前端的都知道浏览器种类繁多,什么 chrome 系,webkit 系,firefox 系等。这里我建议使用 JS 库——jakearchibald/idb
引用
Using npm
复制代码
Using browser
modules 写法
外部引用
基本操作
检测 IndexedDB API 是否生效
复制代码
连接 DB
复制代码
创建数据
复制代码
带事务创建数据
复制代码
根据 Key 读取数据
复制代码
读取所有 keys 数据
复制代码
读取所有 values 数据
复制代码
删除数据库
复制代码
根据 Key 删除数据
复制代码
清除数据
复制代码
引用 A quick but complete guide to IndexedDB and storing data in browsers
版权声明: 本文为 InfoQ 作者【DisonTangor】的原创文章。
原文链接:【http://xie.infoq.cn/article/0ee5a041b6b8b6f7f6114e851】。
本文遵守【CC-BY 4.0】协议,转载请保留原文出处及本版权声明。
评论