Javascript 在变量中输入ajax结果的函数
我对这个代码有问题。 发生这种情况: 只要从console.log启动代码,我就会得到null,如果我按下更新按钮,函数就会工作 为什么会这样? 我怎么修理Javascript 在变量中输入ajax结果的函数,javascript,jquery,json,ajax,function,Javascript,Jquery,Json,Ajax,Function,我对这个代码有问题。 发生这种情况: 只要从console.log启动代码,我就会得到null,如果我按下更新按钮,函数就会工作 为什么会这样? 我怎么修理 var urljson = "data_json.php"; var data = null; var jqXHR = $.ajax ({ type: "GET", url: urljson, dataType: 'json', success: successHandler }); function successHan
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… ]
});
当页面加载时,
update()
不会被调用,因此数据
为空。将函数调用添加到$(document).ready()
,它应该可以工作。$。ajax()
异步返回结果。使用success
处理程序或链接到$.ajax()
的.then()
来处理从请求返回的响应
function update() {
var jqXHR = $.ajax({
type: "GET",
url: urljson,
dataType: "json",
success: successHandler
});
function successHandler(result) {
data = result;
// do stuff with `data` here
console.log(data);
}
}
$(document).ready(update);
在document.ready事件上,JSON尚未从服务器返回,因此数据仍然为空。只有当JSON文件到达并触发成功句柄时,数据才会被设置到
$(document.ready(函数(){update();console.log(数据)})代码>仍然无法工作。只有在xhr调用触发successHandler后,才会设置数据,因此对数据所做的任何操作都应该进入successHandler,而不是文档。就绪单击事件只起作用,因为脚本加载上的jqXHR在单击调用update()时已经获取了json文件。它起作用,但如何处理“日期”呢“$(文档).ready(更新)”中的变量?不确定您的意思?在成功
回调或回调中访问$.ajax()
响应的结果。然后()
回调。我试图以这种方式使用日期变量,但不起作用:$(文档).ready(更新),function(){var length=data.length;console.log(length)};在$.ajax()中对数据执行任务。我知道,但我希望我需要每隔几分钟更新一次“数据”,而不更新“成功”中包含的代码组