注销时jQuery清除缓存

时间:2011-07-14 10:47:33

标签: javascript jquery caching jquery-mobile

当用户从我的移动应用程序退出时,如何确保清除缓存?

我正在考虑的是重定向/注销到清除缓存并重定向到首页的特定页面,但如何清除缓存中的所有内容?

我正在使用jQuery Mobile 1.0b2pre。

3 个答案:

答案 0 :(得分:6)

以下是我如何解决它:

我的/logout操作在后端销毁用户会话,重定向到/exit,其id属性为exitPage。 在我的JavaScript中,我已经要求jQuery Mobile在即将创建该页面时触发。然后我清空DOM并重定向到首页。

/出口:

<div data-role="page" id="exitPage"></div>

/my.js:

jQuery('#exitPage').live('pagebeforecreate', function(){
    jQuery(document).empty();
    window.location.replace('/');
});

答案 1 :(得分:1)

你无法清除缓存。但你可以做的是根据他的会话ID识别用户,并在下次进入时将其附加到资产网址someimage.png?cachecontrol=blablalba,他将拥有一个新的会话ID,这样即使是旧文件,他也会获得新文件仍然在缓存中。另一个解决方案是将缓存控制标头显式设置为no-cache。但你不能强迫他的浏览器清除它的缓存

答案 2 :(得分:0)

为避免更改所有网页的网址,您可以根据会话ID在会话中为每个响应发送ETag标头。如果你还包括Cache-Control:must-revalidate,这应该可以解决问题。