我對此代碼有問題。 出現這種情況: 距離的console.log啓動代碼,我得到空,如果我按更新按鈕功能的工作原理。將ajax結果寫入變量的函數
爲什麼會發生這種情況? 我該如何解決?
var urljson = "data_json.php";
var data = null;
var jqXHR = $.ajax
({
type: "GET",
url: urljson,
dataType: 'json',
success: successHandler
});
function successHandler(result) {
data = result;
}
function update(){
var jqXHR = $.ajax
({
type: "GET",
url: urljson,
dataType: 'json',
success: successHandler
});
function successHandler(result) {
data = result;
}
}
$(document).ready(function(){
console.log(data) //// null
});
document.getElementById('update').addEventListener('click', function() {
update();
console.log(data) //// Array [ Object, Object, Object, Object, Object, Object, Object, Object, Object, Object, other 3213… ]
});
上的document.ready事件時,JSON並沒有從服務器還沒有恢復,所以數據仍然是零。只有當JSON文件到達並且succesHandler被觸發時,纔會設置數據。 – Shilly