2012-07-19 178 views
0

我使用jquery在调用服务器之前显示进度指示器。通话结束后,我隐藏了进度指示器。我注意到的问题是进度指示器永远不会显示,浏览器窗口会冻结,直到对客户端的调用返回。我怎样才能防止这一点。进行呼叫时,我希望进度指示器动起来。Javascript:防止浏览器在调用服务器时被冻结

我正在使用$ .ajax方法来调用服务器。这是代码。请注意,我没有显示对$ .ajax的调用,因为它被隐藏在invoke调用中,但可以放心调用它。

// Show progess indicator while waiting. 
var imgAjaxSaving = $("#imgAjaxSaving"); 
imgAjaxSaving.show(); 

// Call server 
developerServiceProxy.invoke 
("SaveAppSpec", 
    { "appSpec": appSpec }, 
    function (result) 
    { 
     // Hide the progress indicator. 
     imgAjaxSaving.hide(); 
    }, 
    AjaxError, false, false 
); 
+0

你可以显示你用来显示进度指示器以及你的ajax调用的代码吗? – megsa 2012-07-19 07:03:26

+0

代码的重要部分是$ ajax调用。至少,developerServiceProxy.invoke(...)的参数是什么。最后两个错误的论据是用来做什么的? – 2012-07-19 07:10:52

回答

2

您可以使用异步调用并使用回调函数来隐藏进度条。

看:

http://api.jquery.com/jQuery.ajax/

此外,确保异步等于在选项(这是默认的)真实。

+0

我已经是。我正在使用$ .ajax,它是异步的。 – AndroidDev 2012-07-19 07:02:33

+0

你可以发布你的代码吗? – 2012-07-19 07:02:58

+0

您能否确认ajax选项中的“async”不等于false? – 2012-07-19 07:04:35

相关问题