Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/87.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 有条件地处理ajax请求_Javascript_Jquery_Html_Animation_Loading - Fatal编程技术网

Javascript 有条件地处理ajax请求

Javascript 有条件地处理ajax请求,javascript,jquery,html,animation,loading,Javascript,Jquery,Html,Animation,Loading,每当Ajax启动(大多数是用户的操作)并在完成时隐藏时,我都会全屏加载动画。同时,我还使用Ajax调用来使用setInterval检查服务器状态 我如何分离Ajax调用来检查服务器状态,因为如果它显示为全屏,这很烦人。状态旁边有一个小的加载图标就可以了 请参阅下面的代码段: $(文档).ajaxStart(函数(){ $.LoadingOverlay(“显示”); }); $(文档).ajaxComplete(函数(){ $.LoadingOverlay(“隐藏”); }); $(文档).re

每当Ajax启动(大多数是用户的操作)并在完成时隐藏时,我都会全屏加载动画。同时,我还使用Ajax调用来使用
setInterval
检查服务器状态

我如何分离Ajax调用来检查服务器状态,因为如果它显示为全屏,这很烦人。状态旁边有一个小的加载图标就可以了

请参阅下面的代码段:

$(文档).ajaxStart(函数(){
$.LoadingOverlay(“显示”);
});
$(文档).ajaxComplete(函数(){
$.LoadingOverlay(“隐藏”);
});
$(文档).ready(函数(){
设置间隔(ajaxCall,3000);
函数ajaxCall(){
$.ajax({
url:“action.php”,
类型:“POST”,
数据:{
“操作”:“检查状态”
},
数据类型:“json”,
成功:功能(数据){
console.log('online');
$('.serverStatus').removeClass('ssOffline');
$('.serverStatus').addClass('ssOnline').text('Online');
},
错误:函数(xhr、ajaxOptions、thrownError){
console.log('offline');
$('.serverStatus').removeClass('ssOnline');
$('.serverStatus').addClass('ssOffline').text('Offline');
}
});
}
});
.ssOffline{
颜色:红色;
}
桑林先生{
颜色:绿色;
}

服务器状态:-

您可以使用默认值
true
。此选项可以使用控制全局处理程序,如ajaxStart和ajaxStop。这将防止出现全屏加载图标

如果您想显示与此呼叫相关的任何其他图标,可以使用
beforeSend
处理程序

$(文档).ajaxStart(函数(事件){
console.log(事件)
$.LoadingOverlay(“显示”);
});
$(文档).ajaxComplete(函数(){
$.LoadingOverlay(“隐藏”);
});
$(文档).ready(函数(){
设置间隔(ajaxCall,3000);
函数ajaxCall(){
$.ajax({
url:“action.php”,
类型:“POST”,
数据:{
“操作”:“检查状态”
},
数据类型:“json”,
全局:false,//此处已更改
成功:功能(数据){
console.log('online');
$('.serverStatus').removeClass('ssOffline');
$('.serverStatus').addClass('ssOnline').text('Online');
},
错误:函数(xhr、ajaxOptions、thrownError){
console.log('offline');
$('.serverStatus').removeClass('ssOnline');
$('.serverStatus').addClass('ssOffline').text('Offline');
}
});
}
});
.ssOffline{
颜色:红色;
}
桑林先生{
颜色:绿色;
}


服务器状态:-

您可以在
jQuery.ajax()
settings对象中设置属性,在
$.ajaxSetup()
中使用
beforeSend
替换
.ajaxStart()
,检查当前设置是否设置了该属性

功能日志(消息){
$(“pre”).text(函数(\ux,text){
返回文本+消息+“\n”
})
}
//不提供'settings'或'jqxhr'作为参数
//我们在这里不执行当前`$.ajax()`调用的逻辑求值
$(文档).ajaxStart(函数(){
日志(“ajax启动”);
});
$(文件)
.ajaxComplete(功能(e、jqxhr、设置){
如果(!settings.pollRequest){
日志(“未完成轮询请求\n”);
//$.LoadingOverlay(“隐藏”);
}否则{
日志(“轮询请求完成\n”);
}
});
$.ajaxSetup({
发送前:函数(jqxhr,设置){
if(settings.pollRequest){
日志(“发送前的轮询请求”);
//$.LoadingOverlay(“显示”);
}否则{
日志(“发送前不轮询请求”);
}
}
});
$(文档).ready(函数(){
设置间隔(ajaxCall,3000);
函数ajaxCall(){
“ajaxCall”;
$.ajax({
url:“数据:文本/纯文本,”,
请求:正确
});
}
$(“按钮”)。在(“单击”,函数(){
$.ajax(“数据:文本/纯文本,”)
})
});

点击

Hi,您能在状态旁边为我添加一个小的加载图标吗?谢谢。@4LeaveCover请不要发布编码作业。即使它们看起来像一条评论也不行。那太粗鲁了。仅在这个网站上,就有无数使用jqueryajax加载图标的例子。做一些研究,从中挑选一个。