gpt4 book ai didi

javascript - 是否有异步 :false in Jquery? 的替代方案

转载 作者:行者123 更新时间:2023-12-03 09:36:53 24 4
gpt4 key购买 nike

我发现主线程上的同步 XMLHttpRequest 已被弃用,因为它会对最终用户的体验产生不利影响。我查看了这篇文章,但找不到任何适合我需要的内容。

alternative to async: false ajax

$(docucment).ready(function(){

var obj=AppendFileList(10);
$.each(obj.Table, function (key, value) {
//some code to do some task
});

});




function AppendFileList(lotid) {

$.ajax({
type: "POST",
url: "XYZ/GetAttachements",
data: JSON.stringify({ LotId: lotid, GUID: $('#hidnuniqueid').val() }), // LotId: arr1[1],
contentType: "application/json; charset=utf-8",
dataType: "json",
async: false,
success: function (data, status) {
var obj = jQuery.parseJSON(data.d);
console.log(obj);
return obj;

},
failure: function (data) {
console.log(data);

},
error: function (data) {
console.log(data);
console.log(data.Message);
}
});

}

我不想将 ajax() 方法保留在一个单独的函数中,正如我在示例中所示的那样,这样我就不必一次又一次地编写 ajax 调用。这可能吗?

最佳答案

所有依赖 AJAX 请求结果的逻辑都应该放在 success 回调中。为此,您可以将匿名函数传递给 AppendFileList() 函数。试试这个:

$(document).ready(function(){
AppendFileList(10, function(data) { // data = the JSON retrieved
$.each(obj.Table, function (key, value) {
// some code to do some task
});
});
});

function AppendFileList(lotid, callbackFn) {
$.ajax({
type: "POST",
url: "XYZ/GetAttachements",
data: {
LotId: lotid,
GUID: $('#hidnuniqueid').val()
},
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function (data, status) {
callbackFn(data); // use your callback here, passing it the retrieved data
},
error: function (data) {
console.log(data);
console.log(data.Message);
}
});
}

请注意,您不需要使用 JSON.stringify 发送 数据 或反序列化响应,因为 jQuery 会自动为您执行此操作,并且 >$.ajax() 方法的设置中没有 failure 属性。

关于javascript - 是否有异步 :false in Jquery? 的替代方案,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31309748/

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