同步Ajax请求会导致页面上出现任何问题吗?

时间:2015-03-09 12:20:42

标签: javascript jquery ajax

我在异步模式下以同步模式制作了我的ajax请求。这下面的代码可以吗?这会导致页面出现任何问题吗?

否则,请告诉我如何制作ajax请求以将值存储在变量中。

var myPage = myPage || {};

myPage.datas = (function(){
var myvar='';
$.ajax({
async: false,
    type:'GET',
    url: 'JSON/carousel-data.json',
    dataType: "json",
    success: function(data) {
       myvar = data;   
    }
});
return myvar;
})();

1 个答案:

答案 0 :(得分:0)

更好,非ui-freeze方法是:

var myPage = myPage || {};
myPage.loadData = function(onDataLoaded){
    var me = this;
    $.ajax({
        type:'GET',
        url: 'JSON/carousel-data.json',
        dataType: "json",
        success: function(data) {
            //set myPage.data
            myPage.data = data;
            onDataLoaded(data);
        }
    });
};
myPage.loadData(function(data){
    //do stuff with the data...
    //initialize your page or something
    // the data is set on myPage.data in the success callback
});

或者你可以使用承诺。它基本上是类似的......这是一个jQuery实现:

var myPage = myPage || {};
$.when(
    $.ajax({
        type:'GET',
        url: 'JSON/carousel-data.json',
        dataType: "json"
    })
).done(function(result) {
    //the data is set on myPage.data
    myPage.data = result[0];

    //do stuff with the data...
    //initialize your page or something
});