Heim  >  Artikel  >  Web-Frontend  >  jQuery implementiert die Methode zur Überwachung aller Ajax-Anfragen auf der Seite

jQuery implementiert die Methode zur Überwachung aller Ajax-Anfragen auf der Seite

不言
不言Original
2018-07-02 14:24:342066Durchsuche

In diesem Artikel wird hauptsächlich die Methode von jQuery zum Überwachen aller Ajax-Anfragen auf der Seite vorgestellt, die die Bestimmungsfähigkeiten von Ajax-Anfragen in jQuery umfasst. Es hat einen bestimmten Referenzwert.

Die Beispiele in In diesem Artikel wird beschrieben, wie jQuery die Methode zur Überwachung aller Ajax-Anfragen auf der Seite implementiert. Teilen Sie es als Referenz mit allen. Die Details lauten wie folgt:

Sind Sie jemals auf ein solches Problem gestoßen: Die Seite initiiert zwei Ajax-Anfragen in der Hoffnung, dass diese erfolgreich sind, bevor eine weitere Aktion ausgeführt wird?

Die einfachste Lösung besteht darin, zu warten, bis einer von ihnen beendet ist, bevor der andere gestartet wird. Dieser Vorgang wird mithilfe einer Rückruffunktion abgeschlossen.

Was passiert jedoch, wenn einer der Ajax-Anfragecodes nicht von Ihnen geschrieben wurde und Sie ihn nicht ändern können?

Mit anderen Worten, Sie möchten nur wissen, wann eine bestimmte URL-Anfrage endet, und möchten sich nicht um andere Anfragen kümmern. Was sollten Sie tun?

<!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>

Andere verwandte Funktionen:

$.ajax:

Fehler: Wird aufgerufen, wenn ein Fehler auftritt, den Sie verwenden können falsche Anfragen zu melden.
vollständig: Wird unabhängig von Erfolg oder Misserfolg aufgerufen

In höheren Versionen:

$.promise
$.when

Das Obige ist der gesamte Inhalt dieses Artikels. Ich hoffe, er wird für das Studium aller hilfreich sein. Weitere verwandte Inhalte finden Sie auf der chinesischen PHP-Website.

Verwandte Empfehlungen:

Implementierung der globalen Überprüfung unter BootstrapValidator basierend auf jQuery

Einführung in die Methode der jQuery-Implementierung von Ajax WCF-Dienste anrufen

Das obige ist der detaillierte Inhalt vonjQuery implementiert die Methode zur Überwachung aller Ajax-Anfragen auf der Seite. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn