2011-11-18 80 views
2

我正在试验HTML5缓存,并且我偶然发现了一个问题。HTML5 Cache fallback

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缓存但我找不到答案。 任何建议将是伟大的!

感谢

回答

0

是的,这是你应该期望,因为如果引用该清单的页面中表现出来(明确)不申报,将被视为清单的一部分隐式的行为“主“页面 - 从这一点起,前进将被缓存并且不会更新,直到清单更改。

直到我体验到相同的行为(在我添加离线功能的应用程序中)并深入规范以更好地理解所观察到的行为之前,这并不完全清楚。

我对这个解决方案是把该页面的动态部分为独立的Ajax调用,这样即使页面被缓存(或明或暗地),其更新它的部分继续通过(非缓存进行更新)Ajax调用。但是,如果您希望它们在脱机时表现得很好(或者如果没有,则处理所产生的Ajax错误),您将希望为所述Ajax调用创建回退条目。