上一主题 下一主题
ScriptCat,新一代的脚本管理器脚本站,与全世界分享你的用户脚本油猴脚本开发指南教程目录
返回列表 发新帖
楼主: KDreamelf - 

【SimpleIDB】indexedDB简易封装库

[复制链接]
  • TA的每日心情
    开心
    昨天 19:18
  • 签到天数: 1 天

    [LV.1]初来乍到

    1

    主题

    2

    回帖

    5

    积分

    荣誉开发者

    积分
    5
    发表于 昨天 13:27 | 显示全部楼层 | 阅读模式

    如何使用? 库问题反馈 给库评分 查看代码

    痛点分析

    • 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”)
    何为链式调用?即如下用法:

    return new SimpleDB()
        .set('k',1)
        .get('k')
        .execute()

    此时会返回数组:[1]。也就是说您执行了几次有返回值的执行函数,就会按顺序添加返回值元素。如果本次执行没有返回值,则会返回[]。
    务必执行execute函数,否则相当于构建好命令没有发送

  • TA的每日心情
    开心
    4 小时前
  • 签到天数: 213 天

    [LV.7]常住居民III

    305

    主题

    4189

    回帖

    4056

    积分

    管理员

    积分
    4056

    管理员荣誉开发者油中2周年生态建设者喜迎中秋油中3周年挑战者 lv2

    发表于 昨天 13:39 | 显示全部楼层
    还有个这个库,哥哥也可以看看:https://dexie.org/
    上不慕古,下不肖俗。为疏为懒,不敢为狂。为拙为愚,不敢为恶。
    回复

    使用道具 举报

    发表回复

    本版积分规则

    快速回复 返回顶部 返回列表