Maison >interface Web >js tutoriel >jQuery implémente la méthode de surveillance de toutes les requêtes ajax sur la page

jQuery implémente la méthode de surveillance de toutes les requêtes ajax sur la page

不言
不言original
2018-07-02 14:24:342130parcourir

Cet article présente principalement la méthode de jQuery pour mettre en œuvre la surveillance de toutes les requêtes ajax sur la page, impliquant les compétences de détermination des requêtes ajax dans jQuery. Il a une certaine valeur de référence. Les amis dans le besoin peuvent s'y référer

Cet article décrit les exemples jQuery implémente la méthode de surveillance de toutes les requêtes ajax sur la page. Partagez-le avec tout le monde pour référence, les détails sont les suivants :

Avez-vous déjà rencontré un tel problème : la page initie deux requêtes ajax, en espérant qu'elles aboutissent avant d'entreprendre une autre action ?

La solution simple à laquelle penser est d'attendre la fin de l'un d'entre eux avant de lancer l'autre. Ce processus est complété à l'aide d'une fonction de rappel.

Cependant, que devez-vous faire si l'un des codes de requête ajax n'est pas écrit par vous et que vous ne pouvez pas le modifier ?

En d’autres termes, vous voulez simplement savoir quand une certaine requête d’URL se termine et vous ne voulez pas vous soucier des autres requêtes. Comment faire ?

<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="utf-8" />
  </head>
  <body>
    <p id="test"></p>
  </body>
  <script src="js/jquery-1.11.0.min.js"></script>
  <!--首先在页面引入jquery的后面,紧接着以下代码:-->
  <script>
    //前提:所有ajax请求都是用jquery的$.ajax发起的,而非原生的XHR;
    var ajaxBack = $.ajax;
    var ajaxCount = 0;
    var allAjaxDone = function(){$(&#39;#test&#39;).append(&#39;all done!<br>&#39;);} //一行代码,就可以知道所有ajax请求什么时候结束
    //由于get/post/getJSON等,最后还是调用到ajax,因此只要改ajax函数即可
    $.ajax = function(setting){
      ajaxCount++;
      var cb = setting.complete;
      setting.complete = function(){
        if($.isFunction(cb)){cb.apply(setting.context, arguments);}
        ajaxCount--;
        if(ajaxCount==0 && $.isFunction(allAjaxDone)){
          allAjaxDone();
        }
      }
      ajaxBack(setting);
    }
  </script>
  <!--以下是别人的script-->
  <script>
    $.ajax({url: &#39;js/jquery-1.11.0.min.js&#39;, success: function(recv){$(&#39;#test&#39;).append(&#39;别人的ajax请求1,done<br>&#39;)}});
  </script>
  <script>
    $.get(&#39;css/main.css&#39;, null, function(recv){$(&#39;#test&#39;).append(&#39;别人的get请求,done<br>&#39;)});
  </script>
  <script>
    $.post(&#39;css/main.css&#39;, null, function(recv){$(&#39;#test&#39;).append(&#39;别人的post请求,done<br>&#39;)});
  </script>
</html>

Autres fonctions associées :

$.ajax :

erreur : appelée lorsqu'une erreur se produit, peut être utilisé pour signaler des demandes erronées.

complet : sera appelé quel que soit le succès ou l'échec

Dans les versions supérieures :

$.promise$.when

Ce qui précède représente l'intégralité du contenu de cet article. J'espère qu'il sera utile à l'étude de chacun. Pour plus de contenu connexe, veuillez faire attention au site Web PHP chinois !

Recommandations associées :

Implémentation de la vérification globale sous bootstrapValidator basée sur jQuery

Introduction à la méthode de jQuery implémentant ajax pour appeler les services WCF

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn