阻止在用户登录之前通过浏览器创建 HTML5 应用程序缓存



My Application 旨在使用 HTML5 appcache 离线工作。有没有办法在用户通过登录界面进行身份验证之前禁用下载应用程序缓存?这样,仅当有效用户访问页面并防止将应用程序缓存到其他用户使用的设备时,才会创建 appcache。这可能吗,如果是,如何?

附言我尝试了以下方法:

$window.applicationCache.addEventListener('checking', function(event){
  event.preventDefault();
  // or
  event.abort();
}, false);
// and the following way
window.addEventListener('load', function(event) {
  window.applicationCache.addEventListener('checking', function(e) {
    window.applicationCache.abort();
      e.preventDefault();
  }, false);
}, false);
// and even this
window.applicationCache.addEventListener('downloading', function(e) {
    window.applicationCache.abort();
    e.preventDefault();
}, false);

以上似乎都不起作用,浏览器在运行时仍将具有appcache。

我还没有测试过这个,但我相信您可以使用 iframe 填充应用程序缓存。查看此页面的源代码以查看此操作的示例。

http://appcache-demo.s3-website-us-east-1.amazonaws.com/offline-iframe/

因此,对于你的方案,只有在登录完成后,才能以编程方式将带有指向清单链接的 iframe。然后,您可以将登录页面作为该清单的一部分包含在内,以便即使脱机,成功登录的用户将来的访问也可以正常工作。

最新更新