gpt4 book ai didi

javascript - 在 JQuery AJAX 调用完成之前停止加载网页?

转载 作者:塔克拉玛干 更新时间:2023-11-02 20:25:17 24 4
gpt4 key购买 nike

我对无法重新设计屏幕的旧站点有要求,我不能使用 header 无缓存标签,而且我必须防止用户在注销并按下后退按钮后看到缓存的屏幕。

我快找到解决方案了(见下面的代码)

当页面加载时,我使用 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 函数停止之前,有什么方法可以阻止页面加载/呈现吗?

谢谢


更新:答案:


我修改了下面接受的答案以包含“缓存:false”选项。在 Firefox 和 Chrome 中,通过后退按钮访问的页面缓存副本将运行 .ajax(),但会使用变量“data”的缓存副本,这会给我一个过时的答案。

$.ajax({
url: "/acme/confirm_authentication",
async:false,
cache: false,
success: function(data) {
if( data != "confirmed"){
location.href = "logout";
}
}

});

最佳答案

您可以使用 ajax 函数并将 async 属性设置为 false。

  $.ajax({
url: "/acme/confirm_authentication",
success: function(data) {
if( data != "confirmed"){
location.href = "logout";
}
},
async:false
});

关于javascript - 在 JQuery AJAX 调用完成之前停止加载网页?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18242527/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com