We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
随着Web App的发展,越来越多的移动端App采用HTML5的方式来开发。但是目前除了Hybrid App外,其他Web App还是需要通过浏览器来访问,对于移动端来说,就产生了以下两个不方便之处:
为了解决上述问题,HTML5提出了离线存储的概念。使用时,只需在App的html文件中添加manifest属性即可,如下所示:
<!DOCTYPE HTML> <html lang="en" manifest="demo.appcache"> <head> </head> ... </html>
manifest文件,也即 .appcache 文件,又称作解析清单,里面列出了要进行离线缓存的文件,和不缓存的文件。
CACHE MANIFEST #v0.11 CACHE: js/app.js css/style.css NETWORK: resource/logo.png * FALLBACK: / /404.html
它一般分为3个部分,分别是:
用户首次在线访问,浏览器发现html文件中有manifest属性,于是请求这个manifest文件,然后浏览器根据manifest文件中指定的文件列表缓存相应的资源。
用户再次在线访问,浏览器直接采用离线存储的资源加载页面,然后服务器请求新的manifest文件,如果manifest文件没有被修改,则触发Application Cache NoUpdate event,然后什么都不做。如果manifest文件发生改变,则重新下载所有资源,并进行离线存储,之后触发Application Cache UpdateReady 事件,但此时浏览器显示的还是旧的页面内容,需要再次刷新页面才行。为了解决这个用户体验问题,可在应用中采用以下代码:
// method1 简单粗暴 window.applicationCache.onupdateready = function() { applicationCache.swapCache(); location.reload(); } // method2 window.applicationCache.addEventListener('updateready', function(e) { applicationCache.update(); applicationCache.swapCache(); location.reload(); }, false);
用户离线访问,浏览器就直接使用离线存储的资源。
即js中的离线存储对象,它有以下几个常用事件:
The text was updated successfully, but these errors were encountered:
已被W3C标准废弃
Sorry, something went wrong.
No branches or pull requests
简介
随着Web App的发展,越来越多的移动端App采用HTML5的方式来开发。但是目前除了Hybrid App外,其他Web App还是需要通过浏览器来访问,对于移动端来说,就产生了以下两个不方便之处:
为了解决上述问题,HTML5提出了离线存储的概念。使用时,只需在App的html文件中添加manifest属性即可,如下所示:
manifest文件
manifest文件,也即 .appcache 文件,又称作解析清单,里面列出了要进行离线缓存的文件,和不缓存的文件。
它一般分为3个部分,分别是:
离线应用访问流程
用户首次在线访问,浏览器发现html文件中有manifest属性,于是请求这个manifest文件,然后浏览器根据manifest文件中指定的文件列表缓存相应的资源。
用户再次在线访问,浏览器直接采用离线存储的资源加载页面,然后服务器请求新的manifest文件,如果manifest文件没有被修改,则触发Application Cache NoUpdate event,然后什么都不做。如果manifest文件发生改变,则重新下载所有资源,并进行离线存储,之后触发Application Cache UpdateReady 事件,但此时浏览器显示的还是旧的页面内容,需要再次刷新页面才行。为了解决这个用户体验问题,可在应用中采用以下代码:
用户离线访问,浏览器就直接使用离线存储的资源。
window.applicationCache对象
即js中的离线存储对象,它有以下几个常用事件:
注意事项
The text was updated successfully, but these errors were encountered: