我有一个遗留的网站需求,我不能重新设计屏幕,不能使用头部no-cache标签,并且必须在用户退出并按下后退按钮后防止用户看到缓存的屏幕。
我已经接近解决方案(请参见以下代码片段)
当页面加载时,我使用JQuery AJAX函数调用Web应用程序并查看用户是否仍然登录。 如果没有,用户将被重定向到登录屏幕
<html>
<head>
<!-- all the usual header stuff, plus links to the jQuery libaries, first script tag on page below -->
<script language = "javascript">
$.get("/acme/confirm_authentication",function(data){
if( data != "confirmed"){
location.href = "logout";
}
});
</script>
</head>
<body>
blah blah blah
</body>
</html>
我不喜欢这个解决方法的一件大事是,在 JQuery 函数完成之前,我可以看到内容闪现。
有没有办法让页面在 JQuery AJAX 函数停止之前保持不加载/渲染?
谢谢
更新:答案:
我修改了下面接受的答案,以包括 "cache: false" 选项。在 Firefox 和 Chrome 中,通过后退按钮到达的页面的缓存副本将运行 .ajax(),但将使用变量 "data" 的缓存副本,这将给我一个过时的答案。
$.ajax({
url: "/acme/confirm_authentication",
async:false,
cache: false,
success: function(data) {
if( data != "confirmed"){
location.href = "logout";
}
}
});