非同步 AJAX 呼叫和變數傳回值
使用 AJAX 執行非同步請求時,了解變數傳回值的工作原理非常重要。在所描述的場景中,單獨的 JavaScript 檔案中的函數正在進行 AJAX 調用,但返回的值未正確設定。
問題描述
函數 get_data在單獨的 JavaScript 檔案中執行 AJAX 請求,旨在傳回從伺服器接收的資料。但是,這種方法不起作用,因為 AJAX 呼叫是異步的。
說明
非同步 AJAX 呼叫不會等待回應回傳才繼續執行的呼叫函數。在這種情況下,get_data 函數在 AJAX 請求完成之前返回,導致測試變數為空。
解
要解決此問題,我們需要處理AJAX 的非同步特性。這可以透過向 get_data 函數提供回呼函數來完成,該函數將在 AJAX 請求完成且資料可用時執行。
以下是更新後的程式碼:
function get_data(data, destination, callback) { if (lock_get == 0) { lock_get = 1; $.ajax({ type: "POST", url: destination, async: true, data: data, success: function(data) { lock_get = 0; if (data && callback) { callback(data); } } }); } }
用法
更新後的函數get_data 應該使用回呼函數作為第三個函數來呼叫參數:
get_data(data, destination, function(test){ notice(test); });
透過使用回調函數,程式碼現在可以在AJAX請求的結果可用時對其進行處理。
以上是如何正確處理非同步AJAX呼叫的變數回傳值?的詳細內容。更多資訊請關注PHP中文網其他相關文章!