异步 AJAX 调用和变量返回
在将框架代码划分为单独的文件的情况下,您遇到了以下问题:返回通过 AJAX 调用的函数的值无法访问。这种混乱源于 AJAX 调用的异步性质。
AJAX 调用:异步性解释
AJAX(异步 JavaScript 和 XML)函数异步操作。这意味着当发出 AJAX 请求时,发出请求的函数不会等待响应完成就继续执行。这允许程序的其他部分在 AJAX 请求正在进行时继续并行运行。
函数返回和 AJAX
对于 get_data 函数,调用成功回调函数时,不会立即执行成功回调函数中的 return 语句。相反,它仅在 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(data, destination, function (test) { notice(test); });
这样,可以在AJAX请求完成时的回调函数。
以上是如何获取异步AJAX调用的返回值?的详细内容。更多信息请关注PHP中文网其他相关文章!