2013-06-27 32 views
0

我正在使用应用程序高速缓存功能,并且所有工作都正常,但是当我最初缓存资源时,我会包含几个需要在线访问的页面。这些页面位于登录屏幕后面,如果用户未登录,则显示登录屏幕而不显示实际页面。因此,当它们被缓存时,它会缓存在登录屏幕中。登录/注销后强制应用程序高速缓存更新

我想在登录后刷新我的应用程序缓存/输出,使其正确反映页,如果在登录后用户的连接断开了。

我知道缓存清单只被要求更新,如果文件本身实际上发生了变化,这是一个问题,因为我无法想到在登录/注销被调用后更新文件的方式。

不幸的是,我不能在不同的页面上使用单独的缓存清单,因为页面是动态模板化为带有Mustache模板的HTML文件。

如何以编程方式让浏览器在登录/注销后更新我的应用程序缓存?

+0

http://stackoverflow.com/a/2181544/982311这可以为你工作吗? – KyorCode

回答

2

你可以通过清单url传递一个id吗?由于会话ID会在注销/登录后发生变化,因此浏览器会将该清单视为不同的文件,尽管它实际上并未发生变化。

<html manifest="myManifest.mf?id=<?= session_id() ?>"> 
    ... 
</html> 
+0

好东西!我的模板数据有一个LoggedIn属性,我可以使用它作为id(例如,myManifest.mf?LoggedIn = True)或作为条件Mustache语句来加载单独的清单文件(实现刷新并为我提供了额外的灵活性根据他们是否登录进行缓存/不缓存)。谢谢! – joshschreuder

+0

很高兴工作! –

相关问题