Heim >Web-Frontend >Front-End-Fragen und Antworten >Was ist der Unterschied zwischen JSONP und Ajax?

Was ist der Unterschied zwischen JSONP und Ajax?

青灯夜游
青灯夜游Original
2022-01-13 18:16:593583Durchsuche

Unterschied: 1. Der Kern von Ajax besteht darin, nicht zu dieser Seite gehörende Inhalte über xmlHttpRequest abzurufen, während der Kern von JSONP darin besteht, Skript-Tags dynamisch hinzuzufügen, um das vom Server bereitgestellte JS-Skript aufzurufen. 2. JSONP unterstützt nur Get-Anfragen. während Ajax Get- und Post-Anfragen unterstützt.

Was ist der Unterschied zwischen JSONP und Ajax?

Die Betriebsumgebung dieses Tutorials: Windows 7-System, JavaScript-Version 1.8.5, Dell G3-Computer.

Die Aufrufmethoden von Ajax und JSONP sind sehr ähnlich. Der Zweck besteht darin, die URL anzufordern und dann die vom Server zurückgegebenen Daten zu verarbeiten. Daher kapseln Frameworks wie JQuery und Ext JSONP als eine Form von Ajax. Werfen wir einen Blick auf JSONP und Ajax und stellen ihre Unterschiede vor.

1. Funktionsweise von Ajax

entspricht dem Hinzufügen einer Zwischenschicht (AJAX-Engine) zwischen dem Benutzer und dem Server, um Benutzervorgänge und Serverantworten asynchron zu machen. Die Ajax-Engine führt einige Datenüberprüfungen und Datenverarbeitungen für Benutzeranfragen durch. Wenn neue Daten vom Server gelesen werden müssen, sendet die Ajax-Engine die Anfrage in ihrem Namen. Der größte Vorteil von AJAX besteht darin, dass es mit dem Server kommuniziert, um Daten zu verwalten, ohne die gesamte Seite zu aktualisieren.

Prozess:

Schritt 1: Erstellen Sie ein Ajax-Engine-Objekt, IE6 ist ein neues ActiveXObject, andere Browser sind ein neues xmlHttpRequest-Objekt;

Schritt 2: Rufen Sie die Open-Methode auf, um eine Anfrage zum Senden zu starten. Die Open-Methode übergibt drei Parameter : Anfragetyp, Anfrage-URL und ein boolescher Wert;

Schritt 3: Rufen Sie die Sendemethode zum Senden auf;

Schritt 4: Verarbeiten Sie die Rückruffunktion onreadystatechange, wenn readState = 4 (Antwortdaten abgeschlossen) und status= Verarbeiten Sie die Antwort Daten bei 200 (Anfrage erfolgreich).

Hinweis: Die Callback-Funktion muss vor open() und send() geschrieben werden.

2. Funktionsweise von Jsonp

Erstellen Sie dynamisch ein Skript-Tag und verwenden Sie das src-Attribut des Skript-Tags, um einen domänenübergreifenden Zugriff ohne Einschränkungen zu erreichen.

Der Webclient ruft die auf dem domänenübergreifenden Server dynamisch generierte js-Formatdatei (Suffix .json) auf die gleiche Weise auf wie das Aufrufen des Skripts. Der Zweck der vom Server dynamisch generierten json-Datei besteht darin, die von ihm benötigten Daten zu laden der Kunde.

Ermöglicht dem Benutzer, einen Rückrufparameter an den Server zu übergeben. Wenn der Server dann Daten zurückgibt, verwendet er diesen Rückrufparameter als Funktionsnamen zum Umschließen der JSON-Daten, sodass der Client seine eigene Funktion für die automatische Verarbeitung anpassen kann die zurückgegebenen Daten.

3. Der Unterschied zwischen Ajax und JSONP

  • Der Kern von Ajax besteht darin, nicht zu dieser Seite gehörende Inhalte über xmlHttpRequest abzurufen.

    Der Kern von JSONP besteht darin, Skript-Tags dynamisch hinzuzufügen, um die JS aufzurufen vom Server bereitgestelltes Skript (Suffix .json).

  • jsonp ist eine Methode oder ein nicht obligatorisches Protokoll, und Ajax muss nicht unbedingt das JSON-Format zum Übertragen von Daten verwenden.

  • jsonp unterstützt nur Get-Anfragen und Ajax unterstützt Get- und Post-Anfragen.

[Verwandte Tutorial-Empfehlungen: AJAX-Video-Tutorial]

Das obige ist der detaillierte Inhalt vonWas ist der Unterschied zwischen JSONP und Ajax?. 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