2011-04-13 64 views
2

我正在使用asp.net生成javascript包裝爲asp.net網絡服務。在JavaScript中,如何爲幾個異步Web服務包裝器"wait"完成返回一些json數據?有沒有在JavaScript中處理等待異步函數的一般和優雅的方式?asp.net web服務javascript包裝異步問題

我試過使用jquery $.ajax,它有一個選項可以使用同步而不是異步。什麼是使用同步$.ajax mode的親和缺點?

我知道每個包裝都採用成功事件處理程序和失敗事件處理程序。但是我發現許多成功事件處理程序的嵌套難以閱讀。我不知道是否有其他用戶發現嵌套尷尬...

+0

我已經把一些想法了審查在[http://stackoverflow.com/questions/8211687/structure-async-callbacks-in-javascript-synching-the-asynch][1] [1]:http://stackoverflow.com/questions/8211687/structure-async-callbacks-in-javascript-synching-the-asynch – bnieland 2011-11-21 12:24:35

回答

2

什麼是使用同步$ .ajax模式的親和缺點?

在所有瀏覽器(除Chrome,AFAIK除外)中,只有一個用於處理JavaScript的線程,所以在等待Web服務調用完成時,您的頁面將完全無響應。這種情況會導致瀏覽器出現「無響應的腳本」警告,最終導致用戶在執行JavaScript時停止JavaScript,或完全關閉網站。

+0

如果調用與回調是異步的,實現同步的正確方法是什麼?我想即使異步調用可能需要很長時間才能返回;在asp.net webservice js包裝的情況下,它有超時選項/回調? – user670800 2011-04-13 01:23:23

+0

在jQuery中,您可以在全局或每個請求中設置錯誤回調,其中一個參數將爲狀態(「超時」,「錯誤」,「中止」或「parsererror」)。您也可以在全局或每個請求上設置超時。請參閱文檔:http://api.jquery.com/jQuery.ajax/ – 2011-04-13 04:00:40