Heim Web-Frontend js-Tutorial So implementieren Sie asynchrone synchrone Anforderungen in AJAX

So implementieren Sie asynchrone synchrone Anforderungen in AJAX

Dec 04, 2017 pm 01:43 PM
ajax 同步 异步

In diesem Tutorial geht es um die Implementierung asynchroner und synchroner Anforderungen in AJAX. Wir wissen, dass die Implementierung des FormData-Typs und der Ereignisüberwachungsschnittstelle AJAX erfordert. Gibt es also eine Möglichkeit, den Server nur dann anzufordern, wenn sich die Seitendaten ändern? die auf der Seite angezeigten Daten dynamisch durch neue Daten ersetzen und gleichzeitig verhindern, dass die Seite aktualisiert wird? Lassen Sie uns heute über das Konzept von AJAX sprechen.

XMLHttpRequest-Objekt

XMLHttpRequest ist nur ein JavaScript-Objekt, um genau zu sein, es ist ein Konstruktor. Mit anderen Worten, es ist überhaupt nicht mysteriös, das einzige Besondere daran ist, dass es vom Client (d. h. vom Browser) bereitgestellt wird (und nicht nativ in JavaScript ist). Darüber hinaus verfügt es über Eigenschaften, Methoden usw erfordert die Instanziierung über das neue Schlüsselwort. Wir müssen sie nur beherrschen Woher stammen die Daten? Woher wissen wir, wie wir diese Daten erhalten? Die Antwort ist, dass wir normalerweise APIs verwenden, um mit verschiedenen Datenbanken zu interagieren.

„API“ ist die Abkürzung für „Application Programming Interface“ (d. h.: Application Programming Interface). Sie können sich vorstellen, dass einige Daten offen sind und darauf warten, verwendet zu werden, und die Art und Weise, wie wir diese Daten erhalten, ist die Verwendung die API. Die übliche Form einer API ist eine URL und stellt bestimmte Parameternamen und Parameterwerte bereit, um Ihnen beim Auffinden der Daten zu helfen, die Sie erhalten möchten.

XMLHttpRequest - Anfrage vorbereiten

Um mit dem Server zu interagieren, müssen Sie zunächst über die folgenden Fragen nachdenken:

Wollen wir Daten abrufen oder Daten speichern? ——Die Anfragemethode ist „GET“ oder „POST“. Wohin soll die Anfrage gesendet werden?     – Das heißt, die entsprechende API-Adresse. - Es gibt zwei Optionen: „synchron“ und „asynchron“

Die .open()-Methode der XMLHttpRequest-Instanz wird zur Beantwortung der oben genannten drei Fragen verwendet. Die .open()-Methode empfängt drei Parameter: Anfragemethode, Anfrage-URL-Adresse und einen booleschen Wert, der angibt, ob es sich um eine asynchrone Anfrage handelt.

Das Folgende ist ein Beispiel für den Aufruf der .open()-Methode:

// Dieser Code initiiert eine synchrone GET-Anfrage für „example.php“.

xhr.open("get", "example.php", false)

// "DELETE", "HEAD", "OPTONS", "PUT" kann auch als verwendet werden open( ) erster Parameter der Methode.

Im obigen Code wird die Synchronisierung erreicht, indem der dritte Parameter als falsch übergeben wird. Es ist zu beachten, dass die send()-Methode, sobald sie auf synchron gesetzt ist, blockiert, bis die Anforderung abgeschlossen ist.

(3) Synchrone Anfragen und asynchrone Anfragen

Die Leute denken normalerweise, dass AJAX asynchron ist, aber in Wirklichkeit ist es keine Technologie, um die Aktualisierung der Seite nach dem Abrufen der Daten zu vermeiden zum Warten auf den Server Unabhängig davon, ob die Antwortmethode synchron oder asynchron ist, müssen Entwickler sie entsprechend den Geschäftsanforderungen konfigurieren (obwohl sie normalerweise asynchron ist).

Sie fragen sich vielleicht, wann wir synchrones AJAX verwenden müssen? Aus meiner persönlichen Erfahrung scheint es schwierig zu sein, die entsprechende Szene zu finden.

Abschließend erklären wir kurz den Unterschied zwischen „synchronem“ Warten auf eine Antwort und „asynchronem“ Warten auf eine Antwort: „Synchron“ bedeutet, dass nach dem Senden der Anfrage kein nachfolgender JavaScript-Code ausgeführt wird. während „asynchron“ bedeutet, dass beim Senden der Anfrage der nachfolgende JavaScript-Code weiterhin ausgeführt wird. Wenn die Anfrage erfolgreich ist, wird die entsprechende

Rückruffunktion

aufgerufen.

XMLHttpRequest Level 2 FormData-Typ Das W3C hat die XMLHttpRequest Level 2-Spezifikation vorgeschlagen. Obwohl nicht alle Browser den in der Spezifikation angegebenen Inhalt implementiert haben, gibt es dennoch einige Inhalte, die vollständig oder implementiert sind von den meisten Browsern.

FormData-Typ

FormData ist ein neuer

Datentyp

(Konstruktor), der uns von XMLHttpRequest Level 2 bereitgestellt wird. Denken Sie auch daran, wie man eine

POST-Anfrage Für ein Formular einreichen? FormData erleichtert diesen Prozess, da das XHR2-Objekt erkennt, dass der übergebene Datentyp eine Instanz von FormData ist, und automatisch die entsprechenden Header-Informationen konfiguriert.

Wie kann man eine POST-Anfrage als Formularübermittlung tarnen? Wenn Sie die POST-Methode verwenden, um Formulardaten in dieser Reihenfolge zu übermitteln, muss der Anforderungsheader „Content-Type“ auf diesen Wert gesetzt werden.

xhr.setRequestHeader('Content-Type','application/x-www-form-urlencoded');

Hinweis: Dies ist kein erforderlicher Wert bei der Verwendung von Formularen, da dies der Standardwert ist Verfahren.

FormData wird wie folgt verwendet:

Darüber hinaus besteht ein weiterer Vorteil von FormData darin, dass es uns im Vergleich zu herkömmlichen AJAX-Anfragen das Hochladen von Binärdaten (Bilder, Videos, Audio, usw.).

Browserkompatibilität für FormData.

// 添加数据
let data1 = new FormData()
data1.append("name", "Tom")
xhr.send(data1)
 
// 提取表单数据
let data2 = new FormData(document.forms[0])
xhr.send(data2)
Nach dem Login kopieren
Desktop IE 10+ und andere Browser unterstützen

Mobiles Android, Firefox Mobile, OperaMobile werden unterstützt, andere Browser sind unbekannt

XMLHttpRequest Level 2-Ereignisüberwachungsschnittstelle

Die erste Version von XMLHttpRequest kann nur eine Rückruffunktion für das onreadystatechange-Ereignis angeben. Das Ereignis reagiert auf alle Situationen.

Die zweite Version von XMLHttpRequest ermöglicht die Angabe von Rückruffunktionen für weitere Ereignisse.

onloadstart Anfrage ausgegeben

onprogress Senden und Laden von Daten

onabort Die Anfrage wurde abgebrochen, zum Beispiel hat der Benutzer die abort()-Methode

onerror aufgerufen Anfrage fehlgeschlagen

onload Die Anfrage wurde erfolgreich abgeschlossen

ontimeout Das vom Benutzer angegebene Zeitlimit ist abgelaufen und die Anfrage wurde nicht abgeschlossen

onloadend Die Anfrage wurde unabhängig davon abgeschlossen das Ergebnis oder der Misserfolg


Ich glaube, dass Sie die Methoden beherrschen, nachdem Sie diese Fälle gelesen haben. Weitere spannende Informationen finden Sie in anderen verwandten Artikeln auf der chinesischen PHP-Website!

Verwandte Lektüre:

Zusammenfassung und Verwendungserklärung des Front-End-JS-Frameworks

So lösen Sie das Ajax-Problem Einheit beim Parsen von JSON-Daten In Form von Sekunden

Schritte zum Implementieren des Datei-Uploads mit js und Servlet in h5

Das obige ist der detaillierte Inhalt vonSo implementieren Sie asynchrone synchrone Anforderungen in AJAX. 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)
1 Monate vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Beste grafische Einstellungen
1 Monate vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. So reparieren Sie Audio, wenn Sie niemanden hören können
1 Monate vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Chat -Befehle und wie man sie benutzt
1 Monate 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)

Mar 18, 2024 am 09:46 AM

Wenn Sie feststellen, dass ein oder mehrere Elemente in Ihrem Synchronisierungsordner nicht mit der Fehlermeldung in Outlook übereinstimmen, kann dies daran liegen, dass Sie Besprechungselemente aktualisiert oder abgesagt haben. In diesem Fall wird eine Fehlermeldung angezeigt, die besagt, dass Ihre lokale Version der Daten mit der Remote-Kopie in Konflikt steht. Diese Situation tritt normalerweise in der Outlook-Desktopanwendung auf. Ein oder mehrere Elemente in dem von Ihnen synchronisierten Ordner stimmen nicht überein. Um den Konflikt zu lösen, öffnen Sie die Projekte und versuchen Sie den Vorgang erneut. Fix Ein oder mehrere Elemente in synchronisierten Ordnern stimmen nicht mit dem Outlook-Fehler überein. In der Outlook-Desktopversion können Probleme auftreten, wenn lokale Kalenderelemente mit der Serverkopie in Konflikt stehen. Glücklicherweise gibt es jedoch einige einfache Möglichkeiten, um zu helfen

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

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

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:

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.

Erweiterter Leitfaden zu Python Asyncio: Vom Anfänger zum Experten Erweiterter Leitfaden zu Python Asyncio: Vom Anfänger zum Experten Mar 04, 2024 am 09:43 AM

Gleichzeitige und asynchrone Programmierung Bei der gleichzeitigen Programmierung geht es um die gleichzeitige Ausführung mehrerer Aufgaben. Bei der asynchronen Programmierung handelt es sich um eine Art der gleichzeitigen Programmierung, bei der Aufgaben keine Threads blockieren. asyncio ist eine Bibliothek für die asynchrone Programmierung in Python, die es Programmen ermöglicht, I/O-Vorgänge auszuführen, ohne den Hauptthread zu blockieren. Ereignisschleife Der Kern von Asyncio ist die Ereignisschleife, die I/O-Ereignisse überwacht und entsprechende Aufgaben plant. Wenn eine Coroutine bereit ist, wird sie von der Ereignisschleife ausgeführt, bis sie auf E/A-Operationen wartet. Anschließend wird die Coroutine angehalten und die Ausführung anderer Coroutinen fortgesetzt. Coroutinen Coroutinen sind Funktionen, die die Ausführung anhalten und fortsetzen können. Das Schlüsselwort asyncdef wird zum Erstellen von Coroutinen verwendet. Die Coroutine verwendet das Schlüsselwort „await“, um auf den Abschluss des E/A-Vorgangs zu warten. Die folgenden Grundlagen von Asyncio

See all articles