manifest.appcache强制刷新
// Check if a new cache is available on page load.
// window.addEventListener('load', function(){
// // window.applicationCache.update(); // 手动更新缓存 或者 监听到加载缓存完成事件后 刷新页面
// window.applicationCache.addEventListener("updateready", function(e){
// console.log(window.applicationCache.status);
// setTimeout(function(){
// window.location.reload();
// }, 3000);
// });
// });
可能会有几秒延迟情况
什么是应用程序缓存(Application Cache)?
HTML5 引入了应用程序缓存,这意味着 web 应用可进行缓存,并可在没有因特网连接时进行访问。
应用程序缓存为应用带来三个优势:
- 离线浏览 - 用户可在应用离线时使用它们
- 速度 - 已缓存资源加载得更快
- 减少服务器负载 - 浏览器将只从服务器下载更新过或更改过的资源。
浏览器支持
所有主流浏览器均支持应用程序缓存,除了 Internet Explorer。
HTML5 Cache Manifest 实例
下面的例子展示了带有 cache manifest 的 HTML 文档(供离线浏览):
实例
<!DOCTYPE HTML>
<html manifest="demo.appcache"
><body>
The content of the document......
</body></html>
亲自试一试
Cache Manifest 基础
如需启用应用程序缓存,请在文档的 <html> 标签中包含 manifest 属性:
<!DOCTYPE HTML>
<html manifest="demo.appcache">
...
</html>
每个指定了 manifest 的页面在用户对其访问时都会被缓存。如果未指定 manifest 属性,则页面不会被缓存(除非在 manifest 文件中直接指定了该页面)。
manifest 文件的建议的文件扩展名是:".appcache"。
请注意,manifest 文件需要配置正确的 MIME-type,即 "text/cache-manifest"。必须在 web 服务器上进行配置。
Manifest 文件
manifest 文件是简单的文本文件,它告知浏览器被缓存的内容(以及不缓存的内容)。
manifest 文件可分为三个部分:
- CACHE MANIFEST - 在此标题下列出的文件将在首次下载后进行缓存
- NETWORK - 在此标题下列出的文件需要与服务器的连接,且不会被缓存
- FALLBACK - 在此标题下列出的文件规定当页面无法访问时的回退页面(比如 404 页面)
CACHE MANIFEST
第一行,CACHE MANIFEST,是必需的:
CACHE MANIFEST
/theme.css
/logo.gif
/main.js
上面的 manifest 文件列出了三个资源:一个 CSS 文件,一个 GIF 图像,以及一个 JavaScript 文件。当 manifest 文件加载后,浏览器会从网站的根目录下载这三个文件。然后,无论用户何时与因特网断开连接,这些资源依然是可用的。
NETWORK
下面的 NETWORK 小节规定文件 "login.asp" 永远不会被缓存,且离线时是不可用的:
NETWORK:
login.asp
可以使用星号来指示所有其他资源/文件都需要因特网连接:
NETWORK:
*
FALLBACK
下面的 FALLBACK 小节规定如果无法建立因特网连接,则用 "offline.html" 替代 /html5/ 目录中的所有文件:
FALLBACK:
/html5/ /404.html
注释:第一个 URI 是资源,第二个是替补。
更新缓存
一旦应用被缓存,它就会保持缓存直到发生下列情况:
- 用户清空浏览器缓存
- manifest 文件被修改(参阅下面的提示)
- 由程序来更新应用缓存
实例 - 完整的 Manifest 文件
CACHE MANIFEST
# 2012-02-21 v1.0.0
/theme.css
/logo.gif
/main.jsNETWORK:
login.aspFALLBACK:
/html5/ /404.html
重要的提示:以 "#" 开头的是注释行,但也可满足其他用途。应用的缓存会在其 manifest 文件更改时被更新。如果您编辑了一幅图片,或者修改了一个 JavaScript 函数,这些改变都不会被重新缓存。更新注释行中的日期和版本号是一种使浏览器重新缓存文件的办法。
关于应用程序缓存的注释
请留心缓存的内容。
一旦文件被缓存,则浏览器会继续展示已缓存的版本,即使您修改了服务器上的文件。为了确保浏览器更新缓存,您需要更新 manifest 文件。
注释:浏览器对缓存数据的容量限制可能不太一样(某些浏览器设置的限制是每个站点 5MB)。
manifest.appcache强制刷新相关推荐
- 火狐强制刷新_强制Firefox 3在Windows XP中使用Vista默认主题
火狐强制刷新 This article was written by Leon Steadman, the same helpful reader that showed us how to Use ...
- Angular的ChangeDetectorRef.detectChanges()实现angularJS的$apply()方法,强制刷新数据渲染
在Javascript代码里,都是按照一定顺序来执行的,当轮到一个代码片段执行的时候,浏览器就只会去执行当前的片段,不会做任何其他的事情.所以有时候一些做得不是很好的网页,当点击了某个东西之后会卡住, ...
- 怎么让用一行代码实现页面的定时强制刷新?脚本刷流量再也不用愁了!
网页的定时强制刷新脚本 要实现网页的强制刷新有很多种方式,这里我们引用一种较为常见同时也很简洁的方法,即利用JQuery框架实现. 核心代码为: < iframe src="url&q ...
- [vue] vue怎么实现强制刷新组件?
[vue] vue怎么实现强制刷新组件? 强制重新渲染this.$forceUpdate()强制重新刷新某组件//模版上绑定key <SomeComponent :key="theKe ...
- php 强制刷新,web端实现后退强制刷新功能代码
本文主要和大家介绍了微信web端后退强制刷新功能的实现代码,需要的朋友可以参考下,希望能帮助到大家. 具体代码如下所示: //生成uuid var uuidChars = "01234567 ...
- 《解决微信内置浏览器返回上一页强制刷新问题方法》
<解决微信内置浏览器返回上一页强制刷新问题方法> 参考文章: (1)<解决微信内置浏览器返回上一页强制刷新问题方法> (2)https://www.cnblogs.com/li ...
- vue2强制刷新,解决页面不会重新渲染的问题
vue2强制刷新,解决页面不会重新渲染的问题 参考文章: (1)vue2强制刷新,解决页面不会重新渲染的问题 (2)https://www.cnblogs.com/zhusf/p/10709503.h ...
- Vue 强制刷新组件
使用 vue 进行开发时,如果要刷新当前路由,则调用 router.go(0)方法即可.但是某些情况下,我们可能要求仅仅刷新某个组件,而不是路由... 遇到的问题 由于渲染数据较多,导致页面中部分数据 ...
- nginx强制刷新用户缓存_HTTP 缓存
HTTP 缓存分为强缓存和协商缓存. HTTP 缓存控制机制 HTML Meta 标记 // 当前页面不缓存, 每次访问都去服务器拉取. 只有部分浏览器支持. HTTP 头信息 HTTP 头信息 强缓 ...
最新文章
- tomcat怎么平滑更新项目_SpringBoot内置tomcat启动原理
- Sliverlight之 画刷
- eclipse里没有project facets
- 【机器学习基础】如何在Python中处理不平衡数据
- 在windows 2003系统安装oracle11G出现的问题
- 计算机不能启动 无法验证数字签名,win10改win7系统启动后提示:无法验证此文件的数字签名怎么办?...
- 网络爬虫之httpclient的使用
- 【Java Netty】Java NIO position limit capacity 以及 BufferUnderflowException
- 数据结构专题(一):1.2.求元素个数,取元素与定位
- python程序设计和c语言_C 语言和 Python,该从哪个入门编程?
- 《OpenGL编程指南》第8版 第9版 VS2015 VS2017配置方法
- 模糊C均值聚类算法---图像分割(python)
- 物联网平台如何创造价值,构建平台需要考虑哪些因素?
- php用date语句获取时间,PHP date函数获取时间几个例子
- UITextView内边距设置
- 暴雪这次可真不要脸。。。
- Linux中升级GLIBC,终结版,测试通过
- 关于java变量命名,介绍阿里JAVA命名规范及IDEA实时检测插件的使用以及CODELF取名神器
- 【鲲鹏HCIA考试】随堂习题卷五
- Redis删除指定前缀的key
热门文章
- [Android] 文字翻转动画的实现
- 【Word】【WPS】跨行显示表格标题/表头
- 1405 mysql 2800_【未解决】MySql安装出现ERROR 1405(28000)
- python实现登录购物_python+selenium实现经京东登录+购物+支付
- 7. css重要概念
- 理解进程、线程以及上下文切换
- js实现5秒后跳转页面
- Python:orator-orm操作实践
- 服务器指定gpu命令,用于亚马逊网络服务深度学习的10个命令行技巧
- 游泳可以戴的耳机有哪些、推荐几款真正能戴着游泳的蓝牙耳机