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

Synchronous Ajax request will cause any issue on the page?

本文关键字:任何 问题 请求 Ajax 同步      更新时间:2023-09-26

我在同步模式下发出了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;
})();

更好的非UI冻结方法是:

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
});