Heim Web-Frontend js-Tutorial So implementieren Sie die native AJAX-Kapselung

So implementieren Sie die native AJAX-Kapselung

Apr 04, 2018 am 10:19 AM
ajax 原生 封装

Dieses Mal zeige ich Ihnen, wie Sie die native AJAX-Kapselung implementieren und welche Vorsichtsmaßnahmen für die Implementierung der nativen AJAX-Kapselung gelten. Hier sind praktische Fälle, werfen wir einen Blick darauf.

Zurück zu nativem js: Ich habe das AJAX-Paket verwendet, das ich online gesehen habe, und ich weiß nicht, ob es irgendwelche Nachteile hat. Ich hoffe, Sie können es aufzeigen.

var ajaxHelper = {
  /*1.0 浏览器兼容的方式创建异步对象*/
  makeXHR: function () {
    //声明异步对象变量
    var xmlHttp = false;
    //声明 扩展 名
    var xmlHttpObj = ["MSXML2.XMLHttp.5.0", "MSXML2.XMLHttp.4.0", "MSXML2.XMLHttp.3.0", "MSXML2.XMLHttp", "MSXML.XMLHttp"];
    //判断浏览器是否支持 XMLHttpRequest,如果支持,则是新式浏览器,可以直接创建
    if (window.XMLHttpRequest) {
      xmlHttp = new XMLHttpRequest();
    }
      //否则,只能循环遍历老式浏览器异步对象名,尝试创建,知道创建成功为止
    else if (window.ActiveXObject) {
      for (i = 0; i < xmlHttpObj.length; i++) {
        xmlHttp = new ActiveXObject(xmlHttpObj[i]);
        if (xmlHttp) {
          break;
        }
      }
    }
    //判断 异步对象 是否创建 成功,如果 成功,则返回异步对象,否则返回false
    return xmlHttp ? xmlHttp : false;
  },
  /*2.0 发送Ajax请求*/
  doAjax: function (method, url, data, isAyn, callback, type) {
    method = method.toLowerCase();
    //2.1创建异步对象
    var xhr = this.makeXHR();
    //2.2设置请求参数(如果是get,则带url参数,如果不是,则不带)
    xhr.open(method, url + (method == "get" ? "?" + data : ""), isAyn);
    //2.3根据请求谓词(get/post),添加不同的请求头
    if (method == "get") {
      xhr.setRequestHeader("If-Modified-Since", 0);
    } else {
      xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
    }
    //2.4设置回调函数
    xhr.onreadystatechange = function () {
      //如果接受完毕 服务器发回的 响应报文
      if (xhr.readyState == 4) {
        //判断状态码是否正常
        if (xhr.status == 200) {
          if (type.toLowerCase() == "json") {
            var ret = {};
            try {
              if (typeof JSON != "undefined") {
                ret = JSON.parse(xhr.responseText);
              } else {
                //IE8以下不支持JSON
                ret = new Function("return " + xhr.responseText)();
              }
              callback(ret);
            } catch (e) {
              console.log(e.message);
              callback(false);
            }
          } else {
            //直接返回文本
            callback(xhr.responseText);
          }
        } else {
          console.log("AJAX Status Code:" + xhr.status);
          callback(false);
        }
      }
    };
    //2.5发送(如果是post,则传参数,否则不传)
    xhr.send(method != "get" ? data : null);
  },
  /*3.0 直接发送Post请求*/
  doPost: function (url, data, isAyn, callback, type) {
    this.doAjax("post", url, data, isAyn, callback, type);
  },
  /*4.0 直接发送Get请求*/
  doGet: function (url, data, isAyn, callback, type) {
    this.doAjax("get", url, data, isAyn, callback, type);
  }
};
Nach dem Login kopieren

Angenommen, das Backend erfordert die Übergabe von zwei Zahlen n1 und n2, und dann wird die Summe zurückgegeben.

Wenn einer der Parameter leer ist oder keine Zahl ist, geben Sie Folgendes zurück: {"status": "0", "msg": "Der Parameter ist falsch!"🎜>

Wenn dies der Fall ist korrekt, Rückgabe: {"status": "1", "sum"://Die Summe von n1 plus n2"🎜>

Der Backend-Code wird nicht veröffentlicht.

Front-End-Anruf:

Ich glaube, Sie haben die Methode gemeistert, nachdem Sie den Fall in diesem Artikel gelesen haben Inhalt, achten Sie bitte auf andere chinesische PHP-Websites Verwandte Artikel!
document.getElementById("btnSubmit").onclick = function () {
      ajaxHelper.doPost("后端url", "n1=10&n2=25", true, function (ret) {
        if (!ret) { return; }
        if (ret.status != 1) {
          alert(ret.msg);
          return;
        }
        var n = ret.sum;
        var s = ret.status;
      }, "json");
};
Nach dem Login kopieren

Empfohlene Lektüre:

Der Unterschied zwischen der Verwendung von Ajax und JavaScript


Detaillierte Erklärung der Verwendung von Ajax und Browser-Cache

Das obige ist der detaillierte Inhalt vonSo implementieren Sie die native AJAX-Kapselung. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Erklärung dieser Website
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

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

R.E.P.O. Energiekristalle erklärten und was sie tun (gelber Kristall)
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Beste grafische Einstellungen
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. So reparieren Sie Audio, wenn Sie niemanden hören können
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Wie man alles in Myrise freischaltet
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

So beheben Sie den 403-Fehler, der bei einer jQuery-AJAX-Anfrage auftritt So beheben Sie den 403-Fehler, der bei einer jQuery-AJAX-Anfrage auftritt Feb 20, 2024 am 10:07 AM

Titel: Methoden und Codebeispiele zur Behebung von 403-Fehlern in jQuery-AJAX-Anfragen. Der 403-Fehler bezieht sich auf eine Anfrage, dass der Server den Zugriff auf eine Ressource verbietet. Dieser Fehler tritt normalerweise auf, weil der Anfrage die Berechtigungen fehlen oder sie vom Server abgelehnt wird. Wenn Sie jQueryAJAX-Anfragen stellen, stoßen Sie manchmal auf diese Situation. In diesem Artikel wird erläutert, wie dieses Problem gelöst werden kann, und es werden Codebeispiele bereitgestellt. Lösung: Berechtigungen prüfen: Stellen Sie zunächst sicher, dass die angeforderte URL-Adresse korrekt ist und stellen Sie sicher, dass Sie über ausreichende Berechtigungen für den Zugriff auf die Ressource verfügen.

So beheben Sie den Fehler 403 der jQuery AJAX-Anfrage So beheben Sie den Fehler 403 der jQuery AJAX-Anfrage Feb 19, 2024 pm 05:55 PM

jQuery ist eine beliebte JavaScript-Bibliothek zur Vereinfachung der clientseitigen Entwicklung. AJAX ist eine Technologie, die asynchrone Anfragen sendet und mit dem Server interagiert, ohne die gesamte Webseite neu zu laden. Wenn Sie jedoch jQuery zum Senden von AJAX-Anfragen verwenden, treten manchmal 403-Fehler auf. Bei 403-Fehlern handelt es sich in der Regel um vom Server verweigerte Zugriffsfehler, möglicherweise aufgrund von Sicherheitsrichtlinien oder Berechtigungsproblemen. In diesem Artikel besprechen wir, wie Sie bei einer jQueryAJAX-Anfrage den Fehler 403 beheben können

TrendForce: Nvidias Blackwell-Plattformprodukte sorgen dafür, dass die CoWoS-Produktionskapazität von TSMC in diesem Jahr um 150 % steigt TrendForce: Nvidias Blackwell-Plattformprodukte sorgen dafür, dass die CoWoS-Produktionskapazität von TSMC in diesem Jahr um 150 % steigt Apr 17, 2024 pm 08:00 PM

Laut Nachrichten dieser Website vom 17. April hat TrendForce kürzlich einen Bericht veröffentlicht, in dem es davon ausgeht, dass die Nachfrage nach den neuen Blackwell-Plattformprodukten von Nvidia optimistisch ist und die gesamte CoWoS-Verpackungsproduktionskapazität von TSMC im Jahr 2024 voraussichtlich um mehr als 150 % steigen wird. Zu den neuen Blackwell-Plattformprodukten von NVIDIA gehören GPUs der B-Serie und GB200-Beschleunigerkarten, die NVIDIAs eigene GraceArm-CPU integrieren. TrendForce bestätigt, dass die Lieferkette derzeit sehr optimistisch in Bezug auf GB200 ist. Es wird geschätzt, dass die Auslieferungen im Jahr 2025 eine Million Einheiten überschreiten werden, was 40-50 % der High-End-GPUs von Nvidia ausmacht. Nvidia plant, in der zweiten Jahreshälfte Produkte wie GB200 und B100 auszuliefern, aber vorgelagerte Waferverpackungen müssen noch komplexere Produkte einführen.

Wie erhalte ich Variablen aus der PHP-Methode mit Ajax? Wie erhalte ich Variablen aus der PHP-Methode mit Ajax? Mar 09, 2024 pm 05:36 PM

Die Verwendung von Ajax zum Abrufen von Variablen aus PHP-Methoden ist ein häufiges Szenario in der Webentwicklung. Durch Ajax kann die Seite dynamisch abgerufen werden, ohne dass die Daten aktualisiert werden müssen. In diesem Artikel stellen wir vor, wie man Ajax verwendet, um Variablen aus PHP-Methoden abzurufen, und stellen spezifische Codebeispiele bereit. Zuerst müssen wir eine PHP-Datei schreiben, um die Ajax-Anfrage zu verarbeiten und die erforderlichen Variablen zurückzugeben. Hier ist ein Beispielcode für eine einfache PHP-Datei getData.php:

Offengelegte AMD „Strix Halo' FP11-Gehäusegröße: entspricht Intel LGA1700, 60 % größer als Phoenix Offengelegte AMD „Strix Halo' FP11-Gehäusegröße: entspricht Intel LGA1700, 60 % größer als Phoenix Jul 18, 2024 am 02:04 AM

Diese Website berichtete am 9. Juli, dass die Prozessoren der AMD Zen5-Architektur „Strix“ über zwei Verpackungslösungen verfügen werden: Der kleinere StrixPoint wird das FP8-Paket verwenden, während der StrixHalo das FP11-Paket verwenden wird. Quelle: videocardz source @Olrak29_ Die neueste Enthüllung ist, dass die FP11-Gehäusegröße von StrixHalo 37,5 mm * 45 mm (1687 Quadratmillimeter) beträgt, was der LGA-1700-Gehäusegröße der AlderLake- und RaptorLake-CPUs von Intel entspricht. AMDs neueste Phoenix APU verwendet eine FP8-Gehäuselösung mit einer Größe von 25*40 mm, was bedeutet, dass StrixHalos F

Wie kann das Problem des jQuery AJAX-Fehlers 403 gelöst werden? Wie kann das Problem des jQuery AJAX-Fehlers 403 gelöst werden? Feb 23, 2024 pm 04:27 PM

Wie kann das Problem des jQueryAJAX-Fehlers 403 gelöst werden? Bei der Entwicklung von Webanwendungen wird jQuery häufig zum Senden asynchroner Anfragen verwendet. Allerdings kann bei der Verwendung von jQueryAJAX manchmal der Fehlercode 403 auftreten, der darauf hinweist, dass der Zugriff vom Server verboten ist. Dies wird normalerweise durch serverseitige Sicherheitseinstellungen verursacht, es gibt jedoch Möglichkeiten, das Problem zu beheben. In diesem Artikel wird erläutert, wie Sie das Problem des jQueryAJAX-Fehlers 403 lösen können, und es werden spezifische Codebeispiele bereitgestellt. 1. machen

PHP und Ajax: Erstellen einer Autovervollständigungs-Vorschlags-Engine PHP und Ajax: Erstellen einer Autovervollständigungs-Vorschlags-Engine Jun 02, 2024 pm 08:39 PM

Erstellen Sie eine Engine für Autovervollständigungsvorschläge mit PHP und Ajax: Serverseitiges Skript: Verarbeitet Ajax-Anfragen und gibt Vorschläge zurück (autocomplete.php). Client-Skript: Ajax-Anfrage senden und Vorschläge anzeigen (autocomplete.js). Praktischer Fall: Fügen Sie ein Skript in die HTML-Seite ein und geben Sie die Kennung des Sucheingabeelements an.

PHP vs. Ajax: Lösungen zum Erstellen dynamisch geladener Inhalte PHP vs. Ajax: Lösungen zum Erstellen dynamisch geladener Inhalte Jun 06, 2024 pm 01:12 PM

Ajax (Asynchronous JavaScript and XML) ermöglicht das Hinzufügen dynamischer Inhalte, ohne die Seite neu laden zu müssen. Mit PHP und Ajax können Sie eine Produktliste dynamisch laden: HTML erstellt eine Seite mit einem Containerelement und die Ajax-Anfrage fügt die Daten nach dem Laden zum Element hinzu. JavaScript verwendet Ajax, um über XMLHttpRequest eine Anfrage an den Server zu senden, um Produktdaten im JSON-Format vom Server abzurufen. PHP nutzt MySQL, um Produktdaten aus der Datenbank abzufragen und in das JSON-Format zu kodieren. JavaScript analysiert die JSON-Daten und zeigt sie im Seitencontainer an. Durch Klicken auf die Schaltfläche wird eine Ajax-Anfrage zum Laden der Produktliste ausgelöst.

See all articles