经典题目总结

来源:互联网 发布:2017大数据峰会 编辑:程序博客网 时间:2024/06/04 23:34

1.HTML5离线存储原理及实现
说明:使用 HTML5,通过创建 cache manifest 文件,创建 web 应用的离线版本。
步骤:
1、 页面头部像下面一样加入一个manifest的属性;

1、  <!DOCTYPE HTML>2、  <html manifest = "cache.manifest">3、  ...4、  </html>

2、在cache.manifest文件的编写离线存储的资源。

CACHE MANIFEST    #v0.1    CACHE:            js/index.js        css/index.css    NETWORK:        images/logo.png    FALLBACK:        *.html /404.html /* / /404.html 或 /html/ /404.html 也可*/

离线存储的manifest一般由三个部分组成:
① CACHE:必选,表示需要离线存储的资源列表,由于包含manifest文件的页面将被自动离线存储,所以不需要把页面自身也列出来。
② NETWORK:可选,可以使用通配符,表示在它下面列出来的资源只有在在线的情况下才能访问,他们不会被离线存储,所以在离线情况下无法使用这些资源。不过,如果在CACHE和NETWORK中有一个相同的资源,那么这个资源还是会被离线存储,也就是说CACHE的优先级更高。
③ FALLBACK:可选,表示如果访问第一个资源失败,那么就使用第二个资源来替换他,如/html/ /404.html表示用 “404.html” 替代 /html/ 目录中的所有文件,/ /404.html表示用 “404.html” 替代当前目录中的所有文件,*.html /404.html表示用 “404.html” 替代 所有html文件。

注意:
① 引用manifest的html必须与manifest文件同源,在同一个域下,FALLBACK中的资源也必须和manifest文件同源。
② 站点中的其他页面即使没有设置manifest属性,请求的资源如果在缓存中也从缓存中访问。
③ 如果服务器对离线的资源进行了更新,那么必须更新manifest文件(如更新manifest的版本等)之后这些资源才能被浏览器重新下载,如果只是更新了资源而没有更新manifest文件的话,浏览器并不会重新下载资源,也就是说还是使用原来离线存储的资源。
④ 浏览器在下载manifest文件中的资源的时候,它会一次性下载所有资源,如果某个资源由于某种原因下载失败,那么这次的所有更新就算是失败的,浏览器还是会使用原来的资源。
⑤ 更新了资源后,新的资源要到下次再访问网页时才会生效,出现这种现象的原因是浏览器会先使用离线资源加载页面,再去检查manifest是否有更新,所以要到下次打开页面才能生效。如果需要资源马上就能生效,那么可以使用window.applicationCache.swapCache()方法来使之生效。

原创粉丝点击