HTML5 应用程序缓存在 Firefox 中无法降级回退。

3

我正在使用最新版的Firefox(11),并且我已经将IIS设置为将*.appcache作为text/cache-manifest提供,并且我已经通过查看“about:cache”和“C:\Users\\AppData\Local\Mozilla\Firefox\Profiles\.\OfflineCache”(根据 MDN)来确认Firefox确实缓存了我的文件。下面是我的demo.appcache文件:

CACHE MANIFEST
../../js/jquery-1.7.1.js
offline.html

NETWORK:
# Chrome respects *
*
# Firefox respects following, refer: http://appcachefacts.info/
http://*
https://*

FALLBACK:
/ offline.html

CACHE:
foo.js

我的步骤如下:
  1. 清除所有缓存,方法为:选项 -> 高级 -> "离线 Web 内容和用户数据" -> "立即清除"。
  2. 通过 <html manifest="demo.appcache"> 访问我的 HTML 页面。
  3. 我确认 Firefox 已经缓存了 demo.appcache 中指定的文件。
  4. 通过菜单 -> Web 开发者 -> 脱机工作 将 Firefox 切换到 "脱机" 模式。
  5. 我尝试访问 "Online.html",希望 Firefox 会向我呈现 "offline.html",但是它显示出"由于处于脱机状态,无法访问此页"的消息。
Chrome 可以正确执行所有操作,但无法切换到“脱机模式”。请参考:Broken Offline Support。 Opera可以脱机工作,但它没有正确地缓存我在“Cache”模块中指定的“offline.html”,这显然违反了标准。
我已经为问题(第 5 步)苦苦挣扎了 3 天以上,希望能得到帮助!

从CACHE MANIFEST中删除offline.html。 - yogihosting
1个回答

1

我也在过去的几天里一直在研究这个问题。当我阅读完你的帖子后,我正要回复时,突然有了一个想法。

在Chrome中,我一直在使用代理切换器来在我的连接和错误的代理信息之间切换,以模拟连接丢失。就像你在Firefox中使用“脱机工作”一样。在我的情况下,我看到的是本地缓存版本的“在线”页面,而不是我预期的离线备用页面。

在Firefox中,我进入“工具”->“选项”->“网络”->“设置”,更改了代理信息,看看会发生什么。结果奏效了!

因此,“脱机工作”可能没有触发备用方案,或者根本没有触发本地存储。

-Nathan


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接