浏览器存储WebSQL和IndexedDB

客户端(浏览器端)存储技术

1. cookies: 由服务端发送给客户端,客户端存储下来,然后在随后让请求中再发回给服务端;增加了文档传输的负载,只能存储少量的数据 4KB,只能存储字符串
2. Web Storage API(localstorage\sessionstorage):能存储更多数据 2.5MB~10MB;只能存储字符串数据 
3. 浏览器端数据库:能够处理更复杂和结构化的数据,更大的存储空间,对其有更多的交互控制

浏览器提供的本地数据库

WebSQL Database(规范被废弃)

所有的实现都基于同一个SQL后端(SQLite),但是我们需要更多的独立实现来完成标准化 ,每个浏览器都有自己的实现,所以被废弃。

image

openDatabase:这个方法使用现有数据库或新建数据库来创建数据库对象

    var db = openDatabase('testDB', '1.0', 'Test DB', 2 * 1024 * 1024);

    <!--
        openDatabase接收五个参数:
            数据库名字
            数据库版本号
            显示名字
            数据库保存数据的大小(以字节为单位 )
            回调函数(非必须)
        如果提供了回调函数,回调函数用以调用 changeVersion() 函数,不管给定什么样的版本号,回调函数将把数据库的版本号设置为空。
        如果没有提供回调函数,则以给定的版本号创建数据库。
    -->

transaction:这个方法允许我们根据情况控制事务提交或回滚

    db.transaction(function (context) {
        context.executeSql('CREATE TABLE IF NOT EXISTS testTable (id unique, name)');
        context.executeSql('INSERT INTO testTable (id, name) VALUES (0, "Byron")');
        context.executeSql('INSERT INTO testTable (id, name) VALUES (1, "Casper")');
        context.executeSql('INSERT INTO testTable (id, name) VALUES (2, "Frank")');
    });
    
    <!--
    transaction方法用以处理事务,当一条语句执行失败的时候,整个事务回滚。
    方法有三个参数:
        包含事务内容的一个方法
        执行成功回调函数(可选)
        执行失败回调函数(可选)
    -->

executeSql:这个方法用于执行SQL 查询

<!--
    executeSql方法用以执行SQL语句,返回结果,方法有四个参数
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值