2017-01-16 79 views
0

我想從PHP文件使用ajax,一些JSON對象加載但我的問題是我的javascript代碼不正確的順序工作。這裏是我的代碼:jquery ajax在正確的順序不工作

var requests; 
$(document).ready(function(){ 
    setInterval(function(){ 
     $.ajax({ 
     url: "test2.php", 
     success: function(result){ 
     requests = JSON.parse(result); 
     alert(requests); 
     } 
     }); 
    }) 
}); 
alert(requests); 

Here is the first alert我過得好頁面加載我和here is the second alert

我的問題是,爲什麼AJAX之前執行的最後一行警報

注:這是一個我的項目的一個小例子,我真正的錯誤是我無法加載一些我需要使用ajax的數組,因爲它在控制檯中顯示爲未定義,即使ajax在腳本的開頭。

+0

,因爲第一個需要時間來加載 –

+3

可能重複[如何返回來自異步調用的響應?](http://stackoverflow.com/questions/14220321/how-do-i異步調用響應) –

+0

因爲它是*異步* - 即啓動ajax請求,然後在請求完成之前繼續執行。更重要的是,第二次提醒在'$(document).ready()'觸發之前運行,這是一個稍後發生的事件,當文檔準備就緒時。 –

回答

0

避免這種情況的最好方法是創建一個函數,在該函數中放置第二個警報。並在ajax調用的成功方法中調用該函數。 例如

ajax({ 
 
... 
 
success: function(){ 
 
... 
 
secondAlert(); 
 
}; 
 
... 
 
}); 
 

 
function secondAlert(){ 
 
alert("alert after jax call"); 
 
};

1

試試這個鱈魚Ajax調用使用PHP

$.ajax({ 
 
    type: "method", // post or get 
 
    url: "file url", 
 
    dataType: "json", 
 
    success: function(data){ 
 
    
 
    }, 
 
    error: function(){ 
 

 
    } 
 
});

0

至於

我的問題是,爲什麼AJAX

AJAX是異步 JavaScript和XML的縮寫之前執行的最後一行的警報。這裏的關鍵字是異步的。 AJAX發送HTTP請求並以異步方式持續執行代碼。在請求完成並收到相應的響應後,執行AJAX請求的回調函數。有更多的信息here