首页 > 代码库 > 记录HTML5离线存储的一些比较容易忽略的知识点

记录HTML5离线存储的一些比较容易忽略的知识点

1 当HTML文件中关联了manifest文件,那么当前文件会默认被缓存。但是缓存的也仅仅是这个HTML文件,如果该文件中关联了其他文件,如JS,CSS,图片,那么

  就需要手动将这些文件加入manifest清单列表中,否则离线后这些文件不会被加入缓存之中,导致载入失败。

2 当断网之后,更新manifest和关联文件,刷新页面,会报错:Manifest fetch failed ,因为manifest列表被更新,那么浏览器会发送请求进行更新manifest列表中的文件,

  但是因为断网,更新失败,所以报错。

3 联网状态,当更新manifest和关联文件后,刷新页面后,会进行更新操作,但是当前刷新,其请求仍然是上一次缓存的内容,刷新之后,上次的缓存才会被更新,故而需要

  到下次刷新页面新的缓存才会生效才会生效。当然这一切的前提是在 不手动用JS更新的情况下。

4 applicationCache事件,其中update()是更新缓存文件,即根据manifest列表从服务器上更新文件,当前前提是manifest清单有所改动,并且服务器文件有所变动。而

   swapCache()则是替换缓存文件,将更新下来的缓存文件替换原来的缓存文件。

  其实这里有小BUG,或者是我没搞懂,我只要调用了update(),即便不调用swapCache()貌似也能替换原来的缓存,不知道是不是刷新页面的时候,浏览器自动执行了这

  一步。。。这里求教。

 

记录HTML5离线存储的一些比较容易忽略的知识点