AJAX 函數中未傳回變數之謎
在Web 應用程式領域,通常將JavaScript 程式碼模組化到單獨的檔案中以模組化增強性能組織性和可維護性。然而,這種轉換可能會帶來一些神秘的問題,例如從 AJAX 函數返回時變數似乎消失了。
問題:
將框架拆分為多個檔案後,開發人員遇到從 AJAX 函數傳回的變數保持為空的問題。儘管資料存在於 JS 檔案中,但執行時無法返回。正在審查的程式碼:
function get_data(data, destination) { ... if (data) { return data; } }
var test = get_data(data, destination);
原因:
AJAX 呼叫的非同步特性是罪魁禍首。 AJAX 呼叫在背景執行,這表示程式碼會繼續執行而不等待回應。因此,get_data 函數在 AJAX 呼叫完成之前返回,導致測試變數為空。
解:
要解決此問題,需要使用回呼處理 AJAX 回應的函數。 AJAX 呼叫完成後會呼叫回呼函數,以便您存取傳回的資料。
function get_data(data, destination, callback) { ... if (data && callback) { callback(data); } }
get_data(data, destination, function(test) { notice(test); });
以上是為什麼我的 AJAX 函數傳回值為空?的詳細內容。更多資訊請關注PHP中文網其他相關文章!