Html 防止特定缓存页触发应用程序缓存更新

Html 防止特定缓存页触发应用程序缓存更新,html,web-applications,offlineapps,offline-browsing,Html,Web Applications,Offlineapps,Offline Browsing,我正在制作一个网络应用程序,允许用户离线登录,但前提是他们以前在线登录过。我遇到的问题是,为了让用户能够脱机登录,我需要缓存我的登录页面。如果我这样做,缓存会在用户登录之前更新,因为我的服务器会将未经身份验证的用户重定向到登录页面,所以所有缓存页面最终都是登录页面的副本 当我看到另一篇文章将会话id作为参数传递给清单url时,我有了希望,但在我的情况下,它没有帮助,因为它仍然在登录之前下载缓存。考虑到我的用户可能会在联机时打开登录页,但仅在脱机时延迟登录一次 我需要一种方法来停止特定页面(如我的

我正在制作一个网络应用程序,允许用户离线登录,但前提是他们以前在线登录过。我遇到的问题是,为了让用户能够脱机登录,我需要缓存我的登录页面。如果我这样做,缓存会在用户登录之前更新,因为我的服务器会将未经身份验证的用户重定向到登录页面,所以所有缓存页面最终都是登录页面的副本

当我看到另一篇文章将会话id作为参数传递给清单url时,我有了希望,但在我的情况下,它没有帮助,因为它仍然在登录之前下载缓存。考虑到我的用户可能会在联机时打开登录页,但仅在脱机时延迟登录一次

我需要一种方法来停止特定页面(如我的登录页面)中的缓存更新,而不从清单中删除我的登录页面。我尝试了以下代码,但仍下载了所有页面:

window.applicationCache.addEventListener("checking",function(e){
    e.stopPropagation();
    e.preventDefault();
}, true);

也许能找到一个方法来做我想做的事。如果有其他人有类似的问题,这里是我的解决方案

  • 创建login\u offline.html或捕获请求服务器端并将*/login\u offline.html重定向到login.html
  • 将清单中的*/login.html替换为*/login\u offline.html,并删除*/login.html中的清单声明。在每个页面中保留仅在登录后可用的清单声明
  • 如果清单中还没有回退部分,则将其添加到清单中,并将其放入:

    回退: sign.htm sign-offline.htm