jQuery在注销时清除缓存

jQuery clear cache on logout

本文关键字:清除 缓存 注销 jQuery      更新时间:2023-09-26

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

我想的是重定向/注销到一个特定的页面,清除缓存和重定向到首页,但我如何从缓存中清除一切?

我使用jQuery Mobile 1.0b2pre

我是这样解决的:

我的/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('/');
});

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

为了避免更改所有页面的URL,您可以在会话中根据会话ID发送每个响应的ETag头。如果您还包含Cache-Control:must-revalidate,这应该可以实现。