html - 缓存 list 在联机时弄乱了我的应用程序

标签 html caching webkit offline

SO 大师

我正在尝试使用 CACHE MANIFEST/HTML5。我的应用程序是 JS 重,构建在 jquery/jquerymobile 上。

这是我的 list 的摘录

CACHE MANIFEST
FALLBACK:
/
NETWORK:
*
CACHE:
/css/style.css
/js/jquery.js

但不知何故,应用程序并没有在第一次加载文件,整个应用程序崩溃了。

  • 我的格式有误吗?
  • 我永远不应该将 JS 加载到缓存中吗?
  • 我应该如何区别对待这个问题,以便在任何内容不可用时始终首先检查网络,并且只加载缓存中可用的内容?

谢谢。

最佳答案

我用你的缓存 list 尝试了一个简单的页面,它对我来说工作正常,所以我不太确定问题出在哪里。但是,

  1. 是的,格式有问题。 FALLBACK 部分中的条目需要包含两部分:模式和 URL。这表示“如果与模式匹配的任何页面离线不可用,则显示 URL(将被缓存)。”这个 (as shown here) 的主要示例是“//offline.html”,意思是“对于所有页面,如果我们处于离线状态且它们未被缓存,则显示/offline.html。”但是,我认为这不是您问题的根源,因为我使用您的确切 list 对其进行了测试并且它仍然有效。
  2. JS 文件没有什么特别之处。将它们加载到缓存中应该没问题。
  3. 我不明白第三个问题。这里可能有两个目标:a) 在返回到缓存之前,您如何首先检查在线是否有更新版本的文件可用,以及 b) 您如何检查网络以查看是否有更新版本的文件未缓存的文件,如果我们处于离线状态,则返回到错误页面。 (a) 的答案是,一旦您打开缓存 list ,事情就会大不相同。它从不检查文件的新版本,除非也有新版本的 list 。因此,无论何时更改任何文件,都必须始终更新 list 。 (b) 的答案是 FALLBACK 部分。

参见 Dive Into HTML5关于这一点的精彩章节,特别是“调试的艺术,又名“杀了我!现在杀了我!””一节,它解释了 list 如何更新。

此外,我认为我们还没有深入了解您的问题,因为不清楚您所说的“应用程序本身不会在第一次加载文件”是什么意思。哪些文件不加载?刷新后它们是否正确加载?等等

关于html - 缓存 list 在联机时弄乱了我的应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7570690/

相关文章:

java - 在冒号后用小写罗马字拆分字符串并附加到 HTML

javascript - 使用 d3js 将 jointplot 添加到 NBA 投篮图

caching - 手动清除 Nginx 缓存导致日志文件错误

css - 在 Webkit 中使用多个文本阴影和负字母间距剪切的像素

java - 如何将 dojox.charting.Chart 转换为 PNG 图像以供用户导出?

javascript - 如何使用javascript播放具有相同ID的两个音频文件

html - 当您将鼠标悬停在标题按钮上时,标题按钮会变大

web-services - Sitecore 以编程方式清除缓存

caching - Magento - 清除单个类别的缓存

css - 为什么 webkit 过滤器悬停时堆叠顺序会发生变化?