Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/404.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/86.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_Ajax_Spinner_Synchronous - Fatal编程技术网

Javascript 发送同步Ajax请求时显示微调器

Javascript 发送同步Ajax请求时显示微调器,javascript,jquery,ajax,spinner,synchronous,Javascript,Jquery,Ajax,Spinner,Synchronous,我需要在向服务器发送同步Ajax请求以检索数据时显示微调器 我知道在异步模式下这样做更好,但我不允许这样做。 我还知道同步ajax请求会阻塞浏览器 我已经找到了一个带有setTimeout的解决方案来延迟ajax请求的调用,但是我的老板不希望我使用setTimeout 你有什么办法解决我的问题吗?多谢各位 在ajax请求上有一个.success()方法 下面是一些如何使用它的例子 不过,关于去润滑,这里还有一些争论 在ajax请求上有一个.success()方法 下面是一些如何使用它的例子

我需要在向服务器发送同步Ajax请求以检索数据时显示微调器

我知道在异步模式下这样做更好,但我不允许这样做。 我还知道同步ajax请求会阻塞浏览器

我已经找到了一个带有setTimeout的解决方案来延迟ajax请求的调用,但是我的老板不希望我使用setTimeout

你有什么办法解决我的问题吗?多谢各位

在ajax请求上有一个.success()方法

下面是一些如何使用它的例子

不过,关于去润滑,这里还有一些争论 在ajax请求上有一个.success()方法

下面是一些如何使用它的例子

不过,关于去润滑,这里还有一些争论

您可以在AJAX调用之前简单地
显示
微调器,然后
将其隐藏在AJAX调用的
成功
错误
中:

$(“#微调器”).show()//在AJAX调用之前显示微调器
$.ajax({
url:“test.html”,
方法:“POST”,
成功:功能(数据){
$(“#微调器”).hide();//调用后隐藏微调器
},
错误:函数(){
setTimeout(()=>{//我在这里设置setTimeout,这样您就有时间查看微调器了。
//复制此代码时将其删除。
$(“#微调器”).hide();//调用后隐藏微调器
},2000);
}
});
#微调器{
显示:无;
宽度:10px;
高度:10px;
动画:旋转2s线性无限;
}
@关键帧旋转{
从{
变换:旋转(0度);
}
到{
变换:旋转(360度);
}
}


0
您可以在AJAX调用之前简单地
显示
微调器,然后
将其隐藏在AJAX调用的
成功
错误
中:

$(“#微调器”).show()//在AJAX调用之前显示微调器
$.ajax({
url:“test.html”,
方法:“POST”,
成功:功能(数据){
$(“#微调器”).hide();//调用后隐藏微调器
},
错误:函数(){
setTimeout(()=>{//我在这里设置setTimeout,这样您就有时间查看微调器了。
//复制此代码时将其删除。
$(“#微调器”).hide();//调用后隐藏微调器
},2000);
}
});
#微调器{
显示:无;
宽度:10px;
高度:10px;
动画:旋转2s线性无限;
}
@关键帧旋转{
从{
变换:旋转(0度);
}
到{
变换:旋转(360度);
}
}


0
您可以通过向页面呈现“静态”gif,并让脚本用AJAX调用的结果替换div的内容来完成此操作。 这将有效地显示一个“加载”图标,直到加载结果,但是如果脚本中出现错误,gif将永远旋转

            <div id="chart_score" style="width: 100%; height: 300px;">
                <div style="text-align: center; height: 100%;">
                    <br />
                    <br />
                    <br />
                    <img src="../../Img/GIF/CircleLoader.gif" />
                    <br />
                    <br />
                    Loading chart...
                </div>
            </div>






装载图表。。。
您可以通过向页面呈现“静态”gif,并让脚本用AJAX调用的结果替换div的内容来实现这一点。 这将有效地显示一个“加载”图标,直到加载结果,但是如果脚本中出现错误,gif将永远旋转

            <div id="chart_score" style="width: 100%; height: 300px;">
                <div style="text-align: center; height: 100%;">
                    <br />
                    <br />
                    <br />
                    <img src="../../Img/GIF/CircleLoader.gif" />
                    <br />
                    <br />
                    Loading chart...
                </div>
            </div>






装载图表。。。
Jquery有一些ajax事件处理程序。你可以用

$( document ).ajaxStart(function() {
  $( "#loading" ).show();
});
发送请求时显示正在加载的图像,以及

$( document ).ajaxComplete(function() {
  $( "#loading" ).hide();
});
在请求完成时隐藏加载图像


REF:and

Jquery有一些ajax事件处理程序。你可以用

$( document ).ajaxStart(function() {
  $( "#loading" ).show();
});
发送请求时显示正在加载的图像,以及

$( document ).ajaxComplete(function() {
  $( "#loading" ).hide();
});
在请求完成时隐藏加载图像


REF:和

您可以在发送之前使用AJAX
成功
错误
完成
功能。或者,您可以在AJAX调用之前简单地显示一个微调器,并根据需要将其隐藏在
success
error
complete
函数中

示例代码:

  $('.spinner-div').show();
  $.ajax({
  //You AJAX function
  success: function(){
     $('.spinner-div').hide();
     //Show success message
  },
  error : function(){
     $('.spinner-div').hide();
     //Show error message
  }
  });

您可以在发送前使用AJAX
成功
错误
完成
功能。或者,您可以在AJAX调用之前简单地显示一个微调器,并根据需要将其隐藏在
success
error
complete
函数中

示例代码:

  $('.spinner-div').show();
  $.ajax({
  //You AJAX function
  success: function(){
     $('.spinner-div').hide();
     //Show success message
  },
  error : function(){
     $('.spinner-div').hide();
     //Show error message
  }
  });

添加到上述解决方案(我已经有了,但没有成功):

我在ajax调用中使用了
async:false,
,该调用是从某个示例复制的,这当然会破坏同步的前端微调器更新。当你考虑它的时候,这是一个不需要动脑筋的问题,但是在上面的例子中没有明确地显示出来


因此,
async:true
最终修复了它。

添加到上面的解决方案中(我已经有了,但没有成功):

我在ajax调用中使用了
async:false,
,该调用是从某个示例复制的,这当然会破坏同步的前端微调器更新。当你考虑它的时候,这是一个不需要动脑筋的问题,但是在上面的例子中没有明确地显示出来

所以,
async:true
最终修复了它