$ .ajax等待完成而不会挂起UI

时间:2012-03-01 16:40:02

标签: javascript ajax

比方说,我有以下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。

1 个答案:

答案 0 :(得分:2)

http://api.jquery.com/jQuery.ajax/。您需要使用async: true对参数执行AJAX请求。然后,您需要编辑代码,以便在successful请求后执行的代码位于successful块内。