gpt4 book ai didi

javascript - 如何在不生成 session 的情况下避免同步 AJAX

转载 作者:行者123 更新时间:2023-11-28 13:21:19 25 4
gpt4 key购买 nike

我的页面在启动时通过 AJAX 从服务器加载所有必需的数据。这包括用户的语言设置、各种分类器、一些业务数据等。

我面临的问题是,当用户第一次访问该页面时,所有这些不同的 AJAX 调用都会同时启动。这意味着在服务器端,大多数都分配了不同的 JSESSIONID-s(我在 Tomcat 8 上使用 Spring,没有任何复杂的配置)。因此,一些数据在服务器端在一个 session 中初始化,但浏览器最终可能会使用不同的 session ,并且无法访问早期 ajax 调用设置的数据。

我想通过在一开始就使用快速同步 AJAX 调用来解决这个问题,以便在它返回并获取 JSESSIONID 后,所有后续调用都将在这个原始 session 中进行。

$.ajax("api/language", {
type: "GET",
cache: false,
async: false,
success: function(data) {
//do stuff;
}
});
// more AJAX calls

它可以工作,但我收到警告消息,主线程上的同步 XMLHttpRequest 已被弃用。现在 - 我明白了为什么这样的同步调用通常对 UI 不利的原因,但是如果我想强制所有 AJAX 调用使用相同的服务器端 session ,还有哪些其他选项可供我使用?

我可以通过使用回调来实现相同的结果,只需将页面初始化代码的所有其余部分放在那里,在第一个 AJAX 调用的“成功”部分中执行它,但这并不完全是与在 main 上同步的效果相同吗?

最佳答案

我会在加载 HTML 文档时启动 session ,而不是在从 API 请求某些内容时启动 session 。

或者,从第一个 API 的成功回调中触发后续 API 调用。

关于javascript - 如何在不生成 session 的情况下避免同步 AJAX,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32823691/

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