将jquery get返回值赋给全局变量

时间:2014-01-11 17:21:12

标签: jquery get

是否可以从jquery get将数据分配给全局变量?这是我想要做的非常简化的版本。

    var page;
    $.get( "view/tenantHome.html", function(data){page = data;});
    console.log(page);

5 个答案:

答案 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,而正在处理的请求会冻结您的页面,并且眉毛中的所有标签通常都会被冻结。