百分百源码网-让建站变得如此简单! 登录 注册 签到领金币!

主页 | 如何升级VIP | TAG标签

当前位置: 主页>网站教程>html5教程> HTML5存储方式小结-
分享文章到:

HTML5存储方式小结-

发布时间:08/01 来源:未知 浏览: 关键词:
本文主要和大家分享HTML5存储方式小结,但愿能帮忙HTML5开发者,也但愿能帮忙到大家更好的把握HTML5存储方式。
本文主要和大家分享HTML5存储方式小结,但愿能帮忙HTML5开发者,也但愿能帮忙到大家更好的把握HTML5存储方式。
  1. Cookies的蛮横生长

  2. 当地存储localstorage

  3. 当地存储sessionstorage

  4. 离线缓存(application cache)

  5. Web SQL

  6. IndexedDB

Cookies的蛮横生长

HTML5涌现以前,Cookies便占领了客户端存储的整个江山,就像是蛮荒时期的蛮横生长,cookies非常不错、迅速地知足现实利用的需求。但是它的题目也很显明,cookies会在要求头上带着数据,并且大小限定在4K之内,这是非常不平安的,容易被外部截取,还存在domain污染。

IE阅读器特殊喜好搞本人的一套,关于添加存储容量参加了UserData,大小是64K,但是其他阅读器不喜好跟它玩,也就只要它本人一家支撑。

那么,重点来了。既然cookies题目那么多,就要想方法解决,否则无法继续往前开展。第一要确认它的题目是什么,然后依据这些题目寻觅解决方案。

  • 解决4K存储容量题目

  • 解决要求头带有存储信息的题目,也就是添加平安性,通过加密通道或方式进行数据存储和传输

  • 解决关系型存储的题目

  • 跨阅读器

当地存储localstorage

存储方式

以键值对(key-value)的方式存储,永恒存储,永不失效,除非手动删除。

存储容量

每个域名5M

常用的API

getItem //取记载

setItem //设定记载

removeItem //移除记载

key //取key所对应的值

clear //革除记载

当地存储sessionstorage

HTML5的当地存储API中的localstoragesessionstorage在运用办法上是雷同的,区别在于sessionstorage在关闭页面后即被清空,而localstorage则会不断保留,除非手动删除。

离线缓存(application cache)

当地缓存利用所需的文件

运用办法

1、配置manifest文件

页面上:



...

manifest文件:

manifest是最简略的文本文件,它奉告阅读器被缓存的内容(以及不缓存的内容)。

manifest文件分为三个局部:

  1. CACHE MANIFEST-在此标题以下出的文件将在首次下载后进行缓存

  2. NETWOrK-在此标题下的文件需要与办事器进行连贯,且不会被缓存

  3. FALLBACK-在此标题下的文件规定当页面没法被拜访时的回退页面(比方404页面)

完备demo

CACHE MANIFEST
# 2016-07-24 v1.0.0
/theme.css
/main.js

NETWORK:
login.jsp

FALLBACK:
/html/ /offline.html

办事器上:manifest文件需要配置准确的MIME-type,即text/cache-manifest

常用API

中心是applicationCache对象,有个status属性,表示利用缓存的目前状态:

0 (UNCACHED):无缓存,没有和页面相干的利用缓存

1 (IDLE):闲置,利用缓存没有得到更新

2 (CHECKING):检查中,正鄙人载描述文件并检查更新

3 (DOWNLOADING):下载中,利用缓存正鄙人载与描述文件中指定的资源

4 (UPDATEREADY):更新完成,所有资源都已经下载结束

5 (IDLE):废弃,利用缓存的描述文件已经不存在了,因而页面没法再拜访利用缓存

相干事件

表示利用缓存状态的转变:

checking:在阅读器为利用缓存查寻更新时触发

error:在检查更新或下载资源期间产生差错时触发

noupdate:在检查描述文件发明文件无变化时触发

downloading:在开端下载利用缓存资源时触发

progress:在文件下载利用缓存的历程中延续一直地下载时触发

updateready:在页面新的利用缓存下载结束时触发

cached:在利用缓存完备可用时触发

application cache的三个优势:

  1. 离线阅读

  2. 提拔页面载入速度

  3. 落低办事器压力

注意事项:

  1. 阅读器对缓存数据的容量限定可能不太同样(某些阅读器设定的限定是每个站点5M

  2. 要是是manifest文件,或者内部列举的某一个文件不克不及正常下载,整个更新历程将视为失败,阅读器继续全部运用旧的缓存

  3. 援用manifesthtml必需与manifest文件同源,在统一个域下

  4. 阅读器会主动缓存援用manifest文件的html文件,这就致使了要是更改了html内容,也需要更新版本才干做到最新

  5. manifest文件中的CACHENETWOrKFALLBACK的位置次序没有关系,要是是隐式声明需要在最前面

  6. FALLBACK中的资源必需和manifest文件同源

  7. 更新完版本后,必需刷新一次才会启动新版本(会涌现重刷一次页面的状况),需要增加监听版本领件

  8. 站点中的其他页面即便没有设定manifest属性,要求的资源要是在缓存中也从缓存中拜访

  9. manifest文件产生转变时,资源要求自身也会触发更新

离线缓存和传统阅读器缓存的区别

  1. 离线缓存是针对整个利用,阅读器缓存是单个文件

  2. 离线缓存可以自动通知阅读器更新资源

Web SQL

Web SQL数据库API并不是HTML5标准的一局部,但它是一个独立的标准,引入了一组运用SQL操纵客户端数据库的APIs

中心办法

  1. openDatabase:运用现有的数据库或创建的数据库新建一个数据库对象

  2. transaction: 控制一个事务,以及基于这种状况施行提交或回滚

  3. executeSql:用于施行现实的SQL查询

打开数据库

var db = openDatabase('mydb', '1.0', 'TEST DB', 2 * 1024 * 1024, fn);

施行查询操纵

var db = openDatabase('mydb', '1.0', 'TEST DB', 2 * 1024 * 1024);
db.transaction(function (tx) {
    tx.executeSql('CREATE TABLE IF NOT EXISTS WIN (id unique, name)');
})

插入数据

注:博客主题里的代码块样式
var db = openDatabase('mydb', '1.0', 'Test DB', 2 * 1024 * 1024);
db.transaction(function (tx) {
   tx.executeSql('CREATE TABLE IF NOT EXISTS WIN (id unique, name)');
   tx.executeSql('INSERT INTO WIN (id, name) VALUES (1, "winty")');
   tx.executeSql('INSERT INTO WIN (id, name) VALUES (2, "LuckyWinty")');
});
注:需要实现的代码块样式,这个是 markdowpad2 里的操纵,也是许多markdown写作工具供给的操纵,只需要按一下 tab 键,非常利便
var db = openDatabase('mydb', '1.0', 'Test DB', 2 * 1024 * 1024);
db.transaction(function (tx) {
   tx.executeSql('CREATE TABLE IF NOT EXISTS WIN (id unique, name)');
   tx.executeSql('INSERT INTO WIN (id, name) VALUES (1, "winty")');
   tx.executeSql('INSERT INTO WIN (id, name) VALUES (2, "LuckyWinty")');
});

读取数据

db.transaction(function (tx) {
   tx.executeSql('SELECT * FROM WIN', [], function (tx, results) {
      var len = results.rows.length, i;
      msg = "

查询记载条数: " + len + "

"; document.querySelector('#status').innerHTML += msg; for (i = 0; i < len; i++){ alert(results.rows.item(i).name ); } }, null); });

IndexedDB

索引数据库(IndexedDBAPI(作为HTML5的一局部)对新建拥有丰硕当地存储数据的数据密集型的离线HTML5 Web利用程序很实用,同时它还有助于当地缓存数据,使传统在线Web利用程序(比方挪移Web利用程序)能够迅速的运转和相应。

异步API

IndexedDB大局部操纵并不是我们常用的调取办法(返回效果的模式),而是(要求-相应模式),比方打开数据库的操纵。

打赏

打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,你说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

百分百源码网 建议打赏1~10元,土豪随意,感谢您的阅读!

共有151人阅读,期待你的评论!发表评论
昵称: 网址: 验证码: 点击我更换图片
最新评论

本文标签

广告赞助

能出一分力是一分吧!

订阅获得更多模板

本文标签

广告赞助

订阅获得更多模板