问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

HTML5的离线缓存是不是就是断网了也可以跟没断网一样用

发布网友 发布时间:2022-04-23 05:19

我来回答

2个回答

懂视网 时间:2022-05-12 08:39


Html5 引入了应用程序缓存,这意味着web应用可以进行缓存,并且可以在没有网络连接的时候进行访问。

1.1 什么是Cache Manifest

首先manifest是一个后缀名为minifest或者appcache,的文件,在文件中定义那些需要缓存的文件,支持manifest的浏览器,会将按照manifest文件的规则,像文件保存在本地,从而在没有网络链接的情况下,也能访问页面。

当我们第一次正确配置appcache后,当我们再次访问该应用时,浏览器会首先检查manifest文件是否有变动,如果有变动就会把相应的变得跟新下来,同时改变浏览器里面的appcache,如果没有变动,就会直接把appcache的资源返回,基本流程是这样的。

1.2 应用缓存的优势:

(1) 离线浏览:用户可以在应用离线时使用它们

(2) 速度更快:已缓存资源,加载得更快

(3) 减少服务器负载:浏览器只需从服务器删下载更改过或更新过的资源就可以了。

二、如何使用

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

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

2.test.manifest清单格式如下

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

3.manifest文件的mime-type必须是 text/cache-manifest类型
manifest文件,基本格式为三段: CACHE, NETWORK,与 FALLBACK,其中NETWORK和FALLBACK为可选项。

而第一行CACHE MANIFEST为固定格式,必须写在前面。

以#号开头的是注释,一般会在第二行写个版本号,用来在缓存的文件更新时,更改manifest的作用,可以是版本号,时间戳或者md5码等等。

CACHE:(必须)

标识出哪些文件需要缓存,可以是相对路径也可以是绝对路径。

CACHE:
a.css
http://www.gxlcms.com/

NETWORK:(可选)

这一部分是要绕过缓存直接读取的文件,可以使用通配符*。

下面的代码 “login.asp” 永远不会被缓存,且离线时是不可用的:

NETWORK:
login.asp

可以使用星号来指示所有其他资源/文件都需要因特网连接:NETWORK:*

FALLBACK:(可选)

指定了一个后备页面,当资源无法访问时,浏览器会使用该页面。该段落的每条记录都列出两个URI—第一个表示资源,第二个表示后备页面。两个 URI 都必须使用相对路径并且与清单文件同源。可以使用通配符。

下面的例子中,如果无法建立因特网连接,则用 “404.html” 替代 /html5/ 目录中的所有文件。

FALLBACK:
/html5/ /404.html

下面的例子中,则用 “404.html” 替代所有文件。

FALLBACK:*.html /404.html

如何更新缓存

如下三种方式,可以更新缓存:

  • 更新manifest文件

  • 通过javascript操作

  • 清除浏览器缓存

  • 给manifest添加或删除文件,都可更新缓存,如果我们更改了js,而没有新增或删除,前面例子中注释中的版本号,可以很好的用来更新manifest文件。

    html5中引入了js操作离线缓存的方法,下面的js可以手动更新本地缓存。

    window.applicationCache.update();

    如果用户清除了浏览器缓存(手动或用其他一些工具)都会重新下载文件。

    注意事项

  • 浏览器对缓存数据的容量限制可能不太一样(某些浏览器设置的限制是每个站点 5MB)。

  • 如果manifest文件,或者内部列举的某一个文件不能正常下载,整个更新过程都将失败,浏览器继续全部使用老的缓存。

  • 引用manifest的html必须与manifest文件同源,在同一个域下。

  • FALLBACK中的资源必须和manifest文件同源。

  • 当一个资源被缓存后,该浏览器直接请求这个绝对路径也会访问缓存中的资源。

  • 站点中的其他页面即使没有设置manifest属性,请求的资源如果在缓存中也从缓存中访问。

  • 当manifest文件发生改变时,资源请求本身也会触发更新。

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

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

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

    window.applicationCache.addEventListener('updateready',function(e){
     if(window.applicationCache.status == window.applicationCache.UPDATEREADY){
      window.applicationCache.swapCache();
    
     if(confirm("loding new?")){
      window.location.reload()
     }
     }
    },false);
  • Html5 引入了应用程序缓存,这意味着web应用可以进行缓存,并且可以在没有网络连接的时候进行访问。

    1.1 什么是Cache Manifest

    首先manifest是一个后缀名为minifest或者appcache,的文件,在文件中定义那些需要缓存的文件,支持manifest的浏览器,会将按照manifest文件的规则,像文件保存在本地,从而在没有网络链接的情况下,也能访问页面。

    当我们第一次正确配置appcache后,当我们再次访问该应用时,浏览器会首先检查manifest文件是否有变动,如果有变动就会把相应的变得跟新下来,同时改变浏览器里面的appcache,如果没有变动,就会直接把appcache的资源返回,基本流程是这样的。

    1.2 应用缓存的优势:

    (1) 离线浏览:用户可以在应用离线时使用它们

    (2) 速度更快:已缓存资源,加载得更快

    (3) 减少服务器负载:浏览器只需从服务器删下载更改过或更新过的资源就可以了。

    二、如何使用

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

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

    2.test.manifest清单格式如下

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

    3.manifest文件的mime-type必须是 text/cache-manifest类型
    manifest文件,基本格式为三段: CACHE, NETWORK,与 FALLBACK,其中NETWORK和FALLBACK为可选项。

    而第一行CACHE MANIFEST为固定格式,必须写在前面。

    以#号开头的是注释,一般会在第二行写个版本号,用来在缓存的文件更新时,更改manifest的作用,可以是版本号,时间戳或者md5码等等。

    CACHE:(必须)

    标识出哪些文件需要缓存,可以是相对路径也可以是绝对路径。

    CACHE:
    a.css
    http://www.gxlcms.com/

    NETWORK:(可选)

    这一部分是要绕过缓存直接读取的文件,可以使用通配符*。

    下面的代码 “login.asp” 永远不会被缓存,且离线时是不可用的:

    NETWORK:
    login.asp

    可以使用星号来指示所有其他资源/文件都需要因特网连接:NETWORK:*

    FALLBACK:(可选)

    指定了一个后备页面,当资源无法访问时,浏览器会使用该页面。该段落的每条记录都列出两个URI—第一个表示资源,第二个表示后备页面。两个 URI 都必须使用相对路径并且与清单文件同源。可以使用通配符。

    下面的例子中,如果无法建立因特网连接,则用 “404.html” 替代 /html5/ 目录中的所有文件。

    FALLBACK:
    /html5/ /404.html

    下面的例子中,则用 “404.html” 替代所有文件。

    FALLBACK:*.html /404.html

    如何更新缓存

    如下三种方式,可以更新缓存:

  • 更新manifest文件

  • 通过javascript操作

  • 清除浏览器缓存

  • 给manifest添加或删除文件,都可更新缓存,如果我们更改了js,而没有新增或删除,前面例子中注释中的版本号,可以很好的用来更新manifest文件。

    html5中引入了js操作离线缓存的方法,下面的js可以手动更新本地缓存。

    window.applicationCache.update();

    如果用户清除了浏览器缓存(手动或用其他一些工具)都会重新下载文件。

    注意事项

  • 浏览器对缓存数据的容量限制可能不太一样(某些浏览器设置的限制是每个站点 5MB)。

  • 如果manifest文件,或者内部列举的某一个文件不能正常下载,整个更新过程都将失败,浏览器继续全部使用老的缓存。

  • 引用manifest的html必须与manifest文件同源,在同一个域下。

  • FALLBACK中的资源必须和manifest文件同源。

  • 当一个资源被缓存后,该浏览器直接请求这个绝对路径也会访问缓存中的资源。

  • 站点中的其他页面即使没有设置manifest属性,请求的资源如果在缓存中也从缓存中访问。

  • 当manifest文件发生改变时,资源请求本身也会触发更新。

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

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

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

    window.applicationCache.addEventListener('updateready',function(e){
     if(window.applicationCache.status == window.applicationCache.UPDATEREADY){
      window.applicationCache.swapCache();
    
     if(confirm("loding new?")){
      window.location.reload()
     }
     }
    },false);
  • 热心网友 时间:2022-05-12 05:47

    离线缓存是html5新特性之一,简单理解就是第一次加载后将数据缓存,在没有清除缓存前提下,下一次没有网络也可以加载,用在静态数据的网页或游戏比较好用。当然,Html5新的特性都不是所有浏览器都能支持的,离线缓存也一样。反正IE9(包括)及IE9以下的浏览器目前是不支持的。
    也可以理解成断网和没有断网一样,希望对你有帮助,望采纳!
    声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
    水浒揭秘贞芸劫张若贞结局 阴茎的大与小有何区别? 男人的生殖气有大有小吗 穿甲弹和破甲弹哪个好 如何从外表区分尾翼稳定脱壳穿甲弹和尾翼稳定破甲弹 穿甲弹、破甲弹和碎甲弹有什么区别?介绍_穿甲弹、破甲弹和碎甲弹有... ...脱壳穿甲弹、乌金穿甲弹、破甲弹都有什么区别? 超前消费还有什么消费 成子湖面临问题 力学试验过程监测 html5 如何更新离线缓存 灵芝鸡骨草瘦肉汤有什么功效?? HTML5的离线储存怎么使用,以及工作原理 鸡骨草灵芝蜜枣煲鸡汤有什么作用 html5新增了离线缓存机制这说法对吗 鸡骨草煲鸡汤的功效 鸡骨草灵芝老母鸡汤 鸡骨草灵芝汤功效有哪些 鸡骨草煲灵芝汤有什么功效 携程买的机票怎么共享订单给别人? 什么是机票订单共享 博蓝共享交易订单为什么都抢不到 云享管家是什么 装修工人接单哪个平台更靠谱? 淘菜菜怎么分享订单 “云车共享”是什么平台? 发货易怎么导出订单 优人帮是什么鬼 共享快递是个什么东西? 多核CPU 和多个 CPU 有何区别? 大蕉花可和鸡骨草一起煲吗? html5离线存储缓存列表可以动态生成吗 怎么学习html5里面的离线缓存 什么是html5的是离线存储 鸡骨草有什么功效? iOS的webView如何实现html的离线缓存 喝鸡骨草煲水有什么功效 HTML5存储类型有什么区别? 鸡骨草煲鸡汤的功效窍门 html5的离线web应用的浏览器和服务器交互的过程要是没有缓存怎么办 HTML5的离线储存怎么使用? HTML5离线存储有优势吗? html5本地存储和离线应用有什么区别? 鸡骨草作用 HTML5离线存储最大能存储多大资源 喝了有蟑螂的水怎么办?会不会在肚子里繁殖 鸡骨草有什么作用? 不小心喝了有蟑螂的水会不会怎么样 请教高手,html页面中的图片,如何让浏览器缓存至本地? 鸡骨草煲汤有什么用?