gpt4 book ai didi

ajax - 当传统和异步为 false 时,对 $.ajax() 感到困惑

转载 作者:行者123 更新时间:2023-12-01 01:08:57 24 4
gpt4 key购买 nike

我有以下代码:

var params = {
task: task,
pk: pk,
rk: rk,
responses: null
}

var resp = [];
$(".city-checkbox").each(function () {
var i = parseInt(this.id.match(/\d+/)[0], 10);
resp[i] = this.checked;
});
parms.responses = resp;

$.ajax({
type: "POST",
traditional: true,
async: false,
data: parms,
dataType: "json",

[...]
});

我的代码向 ASP MVC 操作发送 POST 请求。我查看了 jQuery 文档,但仍然无法理解传统的做法。有人可以解释一下我是否真的需要在这里使用它。

与 async false 相同:有什么缺点吗?

最佳答案

traditional 的文档实际上已结束于 jQuery.param :

As of jQuery 1.4, the $.param() method serializes deep objects recursively to accommodate modern scripting languages and frameworks such as PHP and Ruby on Rails. You can disable this functionality globally by setting jQuery.ajaxSettings.traditional = true;.

您是否要使用该标志取决于您的后端将如何反序列化参数。除非您遇到麻烦,否则您可能想坚持使用默认值 false - 但我可能是错的。您应该在您的特定环境中对其进行测试。

<小时/>

更新 - 正如 Kevin 所说,除非您真的知道自己在做什么,否则您不应该使用 async: false 因为它会阻止用户的浏览器,直到 AJAX 调用完成。您将无法控制这一点。更好的方法是使用默认的 async: true 并显示旋转的 GIF 或类似内容,以自行阻止 UI 并让用户知道他们需要等待。

关于ajax - 当传统和异步为 false 时,对 $.ajax() 感到困惑,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12864228/

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