HTML5缓存回退

时间:2011-11-18 10:45:28

标签: html5

我正在尝试HTML5缓存,我偶然发现了一个问题。

CACHE MANIFEST

/Default.aspx
/Offline.aspx
/js/jquery-1.6.4.min.js
/js/jquery.mobile-1.0rc2.min.js
/css/jquery.mobile-1.0rc2.min.css
/css/images/ajax-loader.png
/css/images/icons-18-white.png

FALLBACK:
/ Offline.aspx

NETWORK:
*

所以我的起始页面是Default.aspx,当设备离线时,它应该重定向到/Offline.aspx,但它没有。现在我可以想到的是因为/Default.aspx被缓存了。 现在让我说我从清单中删除/Default.aspx,它仍然会被缓存,因为它引用了HTML标记中的清单。

我已经阅读了几十页有关html缓存的内容,但我找不到答案。 任何建议都会很棒!

谢谢

1 个答案:

答案 0 :(得分:0)

是的,这是您应该期望的行为,因为如果引用清单的页面未在清单本身(显式)中声明,则它将被隐式地视为清单的一部分作为“主”页面 - 并且从在转发更改之前,该转发点将被缓存并且不会更新。

在我遇到相同的行为(在我正在添加离线功能的应用程序中)并挖掘规范以更好地理解观察到的行为之前,我并不完全清楚这一点。

我的解决方案是将该页面的动态部分转换为单独的Ajax调用,这样即使页面被缓存(隐式或显式),更新的部分也会通过(非缓存)继续更新Ajax调用。但是,如果希望它们在脱机时表现良好(或者如果没有处理产生的Ajax错误),则需要为所述Ajax调用创建回退条目。

相关问题