2011-04-12 30 views
1

我有一個web應用程序調用ajax web服務。這個web服務返回我的應用程序的配置,所以ajax調用需要設置爲{async:false}。 當我的服務器啓動時,一切正常,但如果不是,我的瀏覽器就會凍結。即使我在ajax呼叫設置中設置了超時時間。 我有一個錯誤處理函數,即使超時通過也不會被調用。

有人曾經遇到過這種情況嗎?

@Edit:我的問題可以通過執行異步調用

+0

好吧,我發現那種在後一個答案:http://stackoverflow.com/questions/2195259/ajax-synchronous-call-with-timeout – Celero 2011-04-12 12:15:41

+0

這就是我要建議。祝你好運;) – 2011-04-12 12:17:42

+0

爲什麼不做異步,並有''成功'回調函數中運行所需的任何代碼? – 2011-04-12 12:18:53

回答

1

當瀏覽器是單線程這將是更好地處理在回調成功返回的配置 ,並在錯誤回調處理任何錯誤來解決。

$.ajax({ 
    url: "mydomain.com/url", 
    type: "GET", 
    dataType: "json", 
    data: $.param($("Element or Expression")), 

    complete: function() { 
    //called when complete 
    }, 

    success: function() { 
    //called when successful 
}, 

    error: function() { 
    //called when there is an error 
    }, 
}); 
+0

是的,這就是我要做的^^ – Celero 2011-04-12 12:34:20

+0

哪個瀏覽器?他從未說過他的瀏覽器是什麼。實際上,現在大多數瀏覽器都可以處理同步請求_just fine_,而無需鎖定。畢竟,他們對標準要求沒有問題,不是嗎?無論如何,這甚至不會回答提出的問題。 – 2011-04-12 14:04:14

+0

我確實沒有指定瀏覽器,我使用IE(因爲我的應用程序使用ActiveX ...)。無論如何,這個答案使我能夠以另一種觀點面對我的問題,所以解決它。 – Celero 2011-04-12 14:14:39