比方说,我有以下javascript函数返回一个布尔值:
function CallWebServiceToUpdateSessionUser(target, user)
{
var dataText = { "jsonUser": JSON.stringify(user) };
$.ajax({
type: "POST",
url: target,
data: JSON.stringify(dataText),
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function (response)
{
return true;
},
failure: function (msg)
{
return false;
}
});
}
并且正在调用的服务器上的目标函数可能需要15秒才能响应。
在服务器调用完成之前,如何保证此功能不会退出?或者,我怎样才能保证谁调用此函数将获得真/假而不是未定义?
注:的 我见过人们使用async:false但是挂起了我不想要的UI。
答案 0 :(得分:2)
见http://api.jquery.com/jQuery.ajax/。您需要使用async: true
对参数执行AJAX请求。然后,您需要编辑代码,以便在successful
请求后执行的代码位于successful
块内。