使用JQuery显示ajax加载

使用JQuery显示ajax加载,jquery,Jquery,我使用的是jQuery的最新版本 我想在jquery执行请求时显示ajax加载/进度图像,在请求完成后我想隐藏它 所以我可能会在成功事件中隐藏它,但在哪个事件中我会显示它 $.ajax({ url: "example.php" }) //where to display progress? .success(function() { //hide progress }) .error(function() { //hide progress }) .co

我使用的是jQuery的最新版本

我想在jquery执行请求时显示ajax加载/进度图像,在请求完成后我想隐藏它

所以我可能会在成功事件中隐藏它,但在哪个事件中我会显示它

 $.ajax({ url: "example.php" })

     //where to display progress?

    .success(function() {  //hide progress })
    .error(function() { //hide progress })
    .complete(function() {  //hide progress });

您可以在ajax调用之前显示进度

 // display progress

 $.ajax({ url: "example.php" })

     //where to display progress?

    .success(function() {  //hide progress })
    .error(function() { //hide progress })
    .complete(function() {  //hide progress });
或者您可以在以下位置注册:

这样,无论何时ajax调用开始,您都不必手动显示进度。 扩展该功能后,您也可以使用或自动隐藏该功能:


您可以在ajax调用之前显示进度

 // display progress

 $.ajax({ url: "example.php" })

     //where to display progress?

    .success(function() {  //hide progress })
    .error(function() { //hide progress })
    .complete(function() {  //hide progress });
或者您可以在以下位置注册:

这样,无论何时ajax调用开始,您都不必手动显示进度。 扩展该功能后,您也可以使用或自动隐藏该功能:


在发出AJAX请求之前执行以下操作:

function MakeRequest() {
    $('#progress').show();
    $.ajax(...)
        .success(function() { $('#progress').hide(); })
        .error(function() { $('#progress').hide(); })
        .complete(function() { $('#progress').hide(); });
}
如果您希望实际报告进度(10%、20%等),那么您必须重新考虑这一点,因为此设置会将您从0增加到100,而不会报告任何真正的“进度”。对于微调器或加载消息,这种类型的设置很好,但仅此而已

查看jQuery文档,有一个请求本地的
beforeSend
事件。您可以这样使用它:

 $.ajax({
   beforeSend: function(){
     // Handle the beforeSend event
     // Show progress
   },
   complete: function(){
     // Handle the complete event
     // Hide progress
   }
   // ......
 });

在发出AJAX请求之前执行以下操作:

function MakeRequest() {
    $('#progress').show();
    $.ajax(...)
        .success(function() { $('#progress').hide(); })
        .error(function() { $('#progress').hide(); })
        .complete(function() { $('#progress').hide(); });
}
如果您希望实际报告进度(10%、20%等),那么您必须重新考虑这一点,因为此设置会将您从0增加到100,而不会报告任何真正的“进度”。对于微调器或加载消息,这种类型的设置很好,但仅此而已

查看jQuery文档,有一个请求本地的
beforeSend
事件。您可以这样使用它:

 $.ajax({
   beforeSend: function(){
     // Handle the beforeSend event
     // Show progress
   },
   complete: function(){
     // Handle the complete event
     // Hide progress
   }
   // ......
 });

是的,但是没有像beforeRequest之类的事件?我经常使用ajax,从来没有听说过.ajaxStart和.ajaxStop。它们非常有用。这只需要在文档中调用一次吗?准备好了吗?@Johnny:是的。您只需要设置一次。它可能是显示进度的元素(
div
e.g.)。所以是的,但是没有像beforeRequest之类的事件?我经常使用ajax,从来没有听说过.ajaxStart和.ajaxStop。它们非常有用。这只需要在文档中调用一次吗?准备好了吗?@Johnny:是的。您只需设置一次。可以是显示进度的元素(
div
e.g.)。