【SimpleIDB】indexedDB简易封装库
## 痛点分析- GM缓存方法只能存放文本数据
- 同域名跨脚本难以共享数据
- 多线程大量数据使用GM函数存取可能造成卡顿
## indexedDB介绍
**以下内容来自AI**
IndexedDB 是一种在浏览器中运行的非关系型数据库,它允许网页应用存储大量结构化数据。这种数据库由键值对组成,可以进行高效的查找和索引。IndexedDB 提供了一种异步API,允许网页应用在不阻塞主线程的情况下进行数据库操作,这对于提升网页应用的性能和用户体验非常重要。
以下是IndexedDB的一些关键特性:
1. **异步API**:IndexedDB 的操作不会阻塞浏览器的主线程,这意味着即使在执行数据库操作时,用户界面也能保持响应。
2. **大数据存储**:IndexedDB 可以存储比传统Web存储(如LocalStorage)更多的数据,通常可以达到数GB。
3. **事务管理**:IndexedDB 支持事务,这意味着你可以将一系列操作作为一个整体进行提交或回滚,这对于保持数据的一致性非常重要。
4. **键值对存储**:IndexedDB 以对象存储的形式存储数据,每个对象存储为一个键值对,其中键用于索引和检索数据。
5. **索引**:IndexedDB 允许创建索引,这使得根据对象的属性快速检索数据成为可能。
6. **支持二进制数据**:IndexedDB 可以存储二进制数据,这对于存储图像、视频或其他大型文件非常有用。
7. **浏览器支持**:大多数现代浏览器都支持IndexedDB,包括Chrome、Firefox、Safari和Edge。
8. **离线应用**:IndexedDB 使得开发离线应用成为可能,因为数据可以存储在用户的设备上,即使没有网络连接也能访问。
IndexedDB 是构建复杂、数据密集型Web应用的重要工具,它提供了一种在客户端存储和管理大量数据的有效方式。
---
脚本目前虽然支持链式调用但尚未支持在链式调用的同时统一事务。因为这个库是用作某个其他项目的工具库,我看大家都没做我就干脆做一个了反正我要用。但我也得以我自己的项目为重。有时间我会继续完善功能。且开发初期本库可能更新的较为频繁。
## 使用说明
主类名SimpleDB,实例化一个对象代表一个DB连接。建议保留该对象,不要创建太多连接。
使用get(key),set(key,value),remove(key)进行增删改查。clear()清空全部数据,useTable('tableName')指定需要使用的数据表(类比Redis的数据库,多套一层,因为它也有自己的“dbName”)
何为链式调用?即如下用法:
``` JavaScript
return new SimpleDB()
.set('k',1)
.get('k')
.execute()
```
此时会返回数组:。也就是说您执行了几次有返回值的执行函数,就会按顺序添加返回值元素。如果本次执行没有返回值,则会返回[]。
**务必执行execute函数**,否则相当于构建好命令没有发送
还有个这个库,哥哥也可以看看:https://dexie.org/ dexie确实好用,相比起来我写的就是依托……还有现在测试完还是用着有点小问题,回头有时间再维护了 有没有完整调用的例子
页:
[1]