我在异步模式下以同步模式不制作了我的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;
})();
答案 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
});