jQuery.promise在页面上锁定用户

时间:2014-02-17 16:23:19

标签: jquery asynchronous

情况如下。我有一个长时间运行的数据库操作,用户可以从Web应用程序启动。我需要在操作完成时通知他们。使用ajax的jQuery承诺看起来非常好,在我的小测试页面中我有它工作,除了它似乎将它们锁定在该页面上,直到请求完成或失败。也许我编码错误 - 这是我的测试代码:

jQuery:

jQuery.fn.Process = function () {
 var promise = $.ajax({
     type: "POST",
     url: "MyPage.aspx/MyTest",
     contentType: "application/json; charset=utf-8",
     data: "{}",
     dataType: "json"
 });
 promise.done(function () { alert("Import completed."); });
 promise.fail(function () { alert("Import failed"); });
 promise.always(function () { alert("Attempt complete"); }); 
};

测试服务:

<WebMethod()> _
Public Shared Function MyTest() As String
Dim strReturn As String = String.Empty

    Threading.Thread.Sleep(60000) 'To test long response

Return strReturn
End Function

执行此代码后,它们将被锁定,直到完成或成功完成。

0 个答案:

没有答案