HTML5离线缓存Manifest是什么

2019-01-28 21:52:44王旭

为了通过编程更新cache,首先调用 applicationCache.update()。这将会试图更新用户的 cache(要求manifest文件已经改变)。最后,当 applicationCache.status 处于 UPDATEREADY 状态时, 调用applicationCache.swapCache(),旧的cache就会被置换成新的。

C/C++ Code复制内容到剪贴板
  1. var appCache = window.applicationCache;        
  2. appCache.update(); // Attempt to update the user’s cache.        
  3. …        
  4. if (appCache.status == window.applicationCache.UPDATEREADY) {        
  5.   appCache.swapCache();  // The fetch was successful, swap in the new cache.        
  6. }      

注意:像这样使用 update()和swapCache()并不会将更新后的资源 呈现给用户。这仅仅是让浏览器检查manifest文件是否发生了更新,然后下载指定的更新内容,重新填充app cache。因此,要让用户看到更新后的内容,需要两次页面下载,一次是更新app cache,一次是更新页面内容。

为了让用户能看到你的站点的最新版本,设置一个监听器来监听页面加载时的updateready 事件。

C/C++ Code复制内容到剪贴板
  1. // Check if a new cache is available on page load.        
  2. window.addEventListener(‘load’, function(e) {        
  3.   window.applicationCache.addEventListener(‘updateready’, function(e) {        
  4.     if (window.applicationCache.status == window.applicationCache.UPDATEREADY) {        
  5.       // Browser downloaded a new app cache.        
  6.       // Swap it in and reload the page to get the new hotness.        
  7.       window.applicationCache.swapCache();            window.location.reload();   
  8.          } else {