是否可以从jquery get将数据分配给全局变量?这是我想要做的非常简化的版本。
var page;
$.get( "view/tenantHome.html", function(data){page = data;});
console.log(page);
答案 0 :(得分:4)
尝试在函数
中打印值$.get( "view/tenantHome.html", function(data){
page = data;
console.log(page);
});
答案 1 :(得分:1)
使用AJAX,你总是使用像
这样的回调function callback(data){
console.log(data);
};
$.get( "view/tenantHome.html", function(data){callback(data)});
答案 2 :(得分:1)
有两种方式
异步(推荐):
var page;
$.get( "view/tenantHome.html", function(data){
page = data;
console.log(page);
});
同步(不推荐);
$.ajaxSetup({async: false});
var page;
$.get( "view/tenantHome.html", function(data){ page = data; });
console.log(page);
$.ajaxSetup({async: true});
不建议使用第二个,因为它将阻止脚本执行,直到ajax调用完成。但是,在某些情况下您可能需要它。
希望这会有所帮助。干杯
答案 3 :(得分:0)
$.get是在jQuery中执行AJAX的简写方法。 These methods are asynchronous by default,因此您所投入的内容可称为race condition。我想你会继续在jQuery中开发并使用AJAX来阅读这些概念。
$ .get有一个回调参数选项,一旦收到回复就会被调用,回调会显示在原始代码中。
var page;
$.get( "view/tenantHome.html", function(data){page = data;});
console.log(page);
您可以执行一些简单的操作,例如encapsulate依赖于函数中page
变量的代码。
var page;
$.get( "view/tenantHome.html", function(data){
page = data;
codeThatDependsOnPageVariable();
});
function codeThatDependsOnPageVariable() {
console.log(page);
}
这样,一旦确保拥有必要的数据,就可以调用代码块。
答案 4 :(得分:0)
.get()
函数返回包含回调.done(), .fail(), .always()
的延迟对象。现在你只处理完成回调而你不知道失败。使用此:
$.get('view/tenantHome.html').done(function(result){
page = data;
console.log(page);
}).fail(function() { console.log('Request fail'); });
现在你可以处理失败了。
永远不要在生产中使用async: false
,而正在处理的请求会冻结您的页面,并且眉毛中的所有标签通常都会被冻结。