大家好,这是我的代码:
var ajax={
chiamata:function(target,url,opzioni){
if (!tools.array_key_exists('caricamento',opzioni)){
opzioni['caricamento']=1;
}
var dati=url.split('?');
$.ajax({
type: opzioni['type'],
url: url,
contentType:"application/x-www-form-urlencoded; charset=UTF-8",
data: dati[1],
dataType: "html",
success: function(msg){
if (opzioni['caricamento']!=0){
ajax.printLoading();
}
$(target).html(msg);
},
error: function(){
alert("Chiamata fallita!");
}
})
},
printLoading:function(){
var body="#colonnaDX";
$(body).ajaxStart(function(){
$(body).append('<div id="loading"><img src="graphic/IMAGE/spinner.gif"/>Loading...</div>');
})
.ajaxStop(function(){
$('#loading').remove();
});
}
},
//Recursive function
var object={
checkAzione:function(target,url,opzioni,interval){
if (!interval)
interval=60000;
ajax.chiamata(target,url,opzioni);
setTimeout(function() {
this.checkAzione(target,url,opzioni,interval);
}, interval);
}
}
$(document).ready(function(){
object.checkAzione(
'#colonnaDX',
'someactions.php',{
'caricamento':0
},
10000
);
})
我会尝试尽可能地解释问题,当文档准备就绪时,函数“checkAzione”启动,它会产生一些像DB调用等东西,这种类型的ajax调用不需要任何视觉加载像微调器等所以在数组“opzioni”我设置一个标志'caricamento':0(相同的'加载':0)只是检查我的ajax对象,看看我的意思,它的工作,直到我做一些ajax调用,使用'caricamento':1,从那一刻起,每个ajax调用我的递归函数使得“printLoading”......任何提示????
答案 0 :(得分:0)
ajaxStart
和ajaxStop
全球,您可以将它们添加到正文中。在这种情况下,您可能不应该使用ajaxStart/Stop
,只需将功能添加到ajax侦听器(成功和错误)。