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

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

当前位置: 主页>网站教程>html5教程> html5怎样做到applicationcache?离线贮存技术的简要注明-
分享文章到:

html5怎样做到applicationcache?离线贮存技术的简要注明-

发布时间:09/01 来源:未知 浏览: 关键词:
在HTML5以前,我们必需连贯网络才干拜访页面。但随着挪移互联网的鼓起,设施终端的位置不在牢固。而挪移设施非常依赖无线信号,可无线网络的牢靠性并不不乱,比方在过隧道或是信号强度弱的地方,没法拜访网站,这无疑对会员体验是欠好的,所以HTML5中的离线缓存(applicationCache)就解决了这个题目。 本章我们给大家介绍用html5 怎样做到application cache?简要注明离线贮存技术。有一定的参照 价值,有需要的伴侣可以参照 一下,但愿对你有所帮忙。

在HTML5以前,我们必需连贯网络才干拜访页面。但随着挪移互联网的鼓起,设施终端的位置不在牢固。而挪移设施非常依赖无线信号,可无线网络的牢靠性并不不乱,比方在过隧道或是信号强度弱的地方,没法拜访网站,这无疑对会员体验是欠好的,所以HTML5中的离线缓存(applicationCache)就解决了这个题目。

一:什么是离线缓存
HTML5离线缓存别名applicationCache,为Html5新特性之一,简略了解就是首先次加载后将数据缓存,在没有革除缓存条件下,下一次没有网络也可以加载,用在静态数据的网页或游戏比拼好用。固然,Html5新的特性都不是所有阅读器都能支撑的,离线缓存也同样。反正IE9(包含)及IE9下列的阅读器当前是不支撑的。要是用在挪移端,应当都能支撑。检测可否支撑离线缓存也是比拼简略的。

《script》
    if(window.applicationCache){
        alert("支撑离线缓存");
    }
    else{
        alert("不支撑离线缓存");
    }
《script》

二:运用办法

HTML5离线缓存,是从阅读器的缓存中分出来的一块缓存区,若要在这个缓存中保留数据,需要运用描述文件(.manifest),列出需要下载和缓存的资源。

1.引入manifest文件







html5 离线缓存



2.引入完了之后,接下来就是test.mainfest文件代码的编写了。

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

manifest 文件可分为三个局部:
①CACHE MANIFEST - 在此标题以下出的文件将在首次下载后进行缓存
②NETWORK - 在此标题以下出的文件需要与办事器的连贯,且不会被缓存
③FALLBACK - 在此标题以下出的文件规定当页面没法拜访时的回退页面(比方 404 页面)

完备的代码

CACHE MANIFEST//必需以这个开头
version 1.0 //最佳定义版本,更新的时候只需修改版本号
CACHE:
    m.png
    test.js
    test.css
NETWORK:
    *
FALLBACK
    online.html offline.html

manifest文件需要配置准确的MIME-type,即“text/cache-manifest”,这个是在web办事器上进行配置。

解析一下:
以#开头的行表示的是注释。CACHE下面的都是缓存的文件,NETWORK表示每次都从网络要求,然后缓存,指定的文件总是从网络上要求最新的。FALLBACK:指定的文件若是寻不到,会被重定向到新的地址。标准都是大写。

3.通过JS动态控制更新

利用在离线后将维持缓存状态,除非产生下列某种状况:
会员革除了阅读器对您网站的数据存储。
清单文件经过修改。

请注意:更新清单中列出的某个文件并不料味着阅读器会从新缓存该资源。清单文件自身必需进行更改。

1)缓存状态:window.applicationCache 对象是对阅读器的利用缓存的编程拜访方式。其 status 属性可用于查看缓存的目前状态。

applicationCache.status的值如下:
0 === 未缓存
  1 === 余暇(缓存为最新状态)
  2 === 检查中
  3 === 下载中
  4 === 更新就绪
  5 === 缓存逾期

var appCache = window.applicationCache; 
switch (appCache.status) { 
  case appCache.UNCACHED: // UNCACHED == 0 
    return 'UNCACHED'; 
    break; 
  case appCache.IDLE: // IDLE == 1 
    return 'IDLE'; 
    break; 
  case appCache.CHECKING: // CHECKING == 2 
    return 'CHECKING'; 
    break; 
  case appCache.DOWNLOADING: // DOWNLOADING == 3 
    return 'DOWNLOADING'; 
    break; 
  case appCache.UPDATEREADY: // UPDATEREADY == 4 
    return 'UPDATEREADY'; 
    break; 
  case appCache.OBSOLETE: // OBSOLETE == 5 
    return 'OBSOLETE'; 
    break; 
  default: 
    return 'UKNOWN CACHE STATUS'; 
    break; 
  };

2)自动更新缓存:applicationCache.update()

《script》    //应用按时器隔一按时间主动更新一下缓存
    setInterval(function(){
            applicationCache.update();
    },50000);《script》

要以编程方式更新缓存,请先调取 applicationCache.update()。此操纵将尝试更新会员的缓存(条件是已更改清单文件)。最后,当applicationCache.status 处于 UPDATEREADY 状态时,调取 applicationCache.swapCache() 即可将原缓存换成新缓存。

var appCache = window.applicationCache;
appCache.update(); // Attempt to update the user's cache.
...
if (appCache.status == window.applicationCache.UPDATEREADY) {
appCache.swapCache();  // The fetch was successful, swap in the new cache.

4.一个简略的离线缓存的利用

建一个web工程AppCache,包含四个文件:
appcache_offline.html



AppCache Test


    打赏
    



    

打赏

取消

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

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

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

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

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

本文标签

广告赞助

能出一分力是一分吧!

订阅获得更多模板

本文标签

广告赞助

订阅获得更多模板