2015-01-21 114 views
-1

嗨我想與阿賈克斯做點什麼。ajax無法正常使用警報框?

在點擊提示框'OK'之前,「DoSomething else」正在執行。 我希望這將只在點擊提醒後或「做某事」塊後執行。

你能指導我嗎?

+0

它不工作,你所希望的方式,**,因爲它的異步調用,它會創建單獨的線程,使請求和你的執行,以當前的代碼將繼續像平常一樣。**。如果您想在單擊警報後執行「DoSomething else」代碼,請將其置於警報之後(警告後對該代碼進行一些函數調用)。 – 2015-01-21 10:46:17

+2

「創建單獨的線程」不是真的,javascript(在瀏覽器中)是單線程的 – atmd 2015-01-21 10:48:02

+0

*線程對不起沒有線程 – atmd 2015-01-21 11:15:12

回答

1

$ .ajax調用是異步默認的,您的代碼'DoSomething'正在執行,因爲ajax調用在執行之前並不急於執行,直到它返回。

把你DoSomething() Ajax回調內部

function DoSomething(url){ 
      $.ajax({ 
       type: "GET", 
       url: url, 
       success: function(data) { 
        if(data.SessionExpired === true) 
         alert('SessionExpired'); 
         DoSomething(); 
        else{ 
         DoAnotherThing(); 
        } 
       } 
      }); 

    }