HTML5离线存储和本地缓存

2017-03-24 10:37:55

一.离线存储

   有一个web应用有三个文件index.html,a.js,b.css,现在需要把js和css文件缓存起来

   1.在index.html里加上<html manifest="test.manifest">

   2.manifest清单格式如下

复制代码

CACHE MANIFEST
#上面一句必须
#v1.0.0
#需要缓存的文件
CACHE:
a.js
b.css
#不需要缓存的文件
NETWORK:
*
#无法访问页面
FALLBACK:
404.html

复制代码

   3.manifest文件的mime-type必须是 text/cache-manifest类型

   注意点:

     1.对于每个index.html?id=1或index.html?id=2都会分别缓存index.html页面,可以通过chrome浏览器Resources/Application Cache观察

     2.如果想更新缓存内容,只要修改下manifest文件即可,如改版本号v1.0.1

 4.离线存储如果资源有更新,可以通过如下代码来监听,但第一次加载还会是原来的版本

复制代码

window.applicationCache.addEventListener('updateready',function(e){    if(window.applicationCache.status == window.applicationCache.UPDATEREADY){
        window.applicationCache.swapCache();        
        if(confirm("loding new?")){
            window.location.reload()
        }
    }
},false)

复制代码

 

二.本地缓存

复制代码

localStorage.setItem("key","value")

localStorage.getItem("key","value")

localStorage.removeItem("key")

localStorage.clear()

复制代码

    1.本地存储永不过期,除非自己去清除

    2.可以通过chrome浏览器Resources/Local Storage来查看

    3.不同域下就算key相同取不到的值也不同,如localhost和127.0.0.1


  • 2017-03-06 14:24:21

    mysql自增主键归零的方法

    如果曾经的数据都不需要的话,可以直接清空所有数据,并将自增字段恢复从1开始计数

  • 2017-03-11 08:39:13

    mysql存在就更新,否则插入

    ,如果要在插入的时候先判断插入的数据是否存在数据库中,那每一次插入之前都要进行一次select的操作,这样效率不高?如何优化蛤?

  • 2017-03-13 12:07:19

    JavaScript原型与原型链分析

    JavaScript没有类的概念,但几乎所有的东西又是基于对象的,同时也能实现继承,这就是js跟其他OOP语言最大的不同之处,这也是js最难理解的一块。下面我来说说我个人的理解。