Key Takeaways
- AJAX, kurz für asynchrone JavaScript und XML, erm?glicht teilweise Seitenaktualisierungen, wodurch die Notwendigkeit einer vollst?ndigen Aktualisierung von Seiten verringert und mehr flüssige Benutzererfahrungen erm?glicht werden k?nnen. Die grundlegende Anatomie einer AJAX -Anfrage besteht darin, eine Instanz der erforderlichen Klasse für eine HTTP -Anforderung zu erstellen, die HTTP -Anforderungsmethode und die URL der Seite anzugeben und die Anforderung zu senden.
- W?hrend JQuery Ajax -Anforderungen vereinfachen kann, ist dies nicht immer erforderlich. Die AJAX -API in Vanille -JavaScript hat signifikante Verbesserungen durchlaufen, und die XMLHTTPrequest -Spezifikation wird nun aus Sicht der Standards als einzelne Entit?t behandelt, was auf eine Verpflichtung der Community hinweist, sich an einen Standard zu halten.
- Vanille Ajax bietet eine flexible und moderne Front-End-API. Es erm?glicht das Einstellen von Anforderungsheadern, die Angabe der vom Server erwarteten Antwort und das Bustieren des Browser -Cache. W?hrend Ajax einst ein komplexer Prozess war, ist es einfacher und benutzerfreundlicher geworden.
Kurz gesagt, AJAX für asynchrone JavaScript und XML ist ein Mechanismus für teilweise Seitenaktualisierungen. Es erm?glicht Ihnen, die Abschnitte einer Seite mit Daten zu aktualisieren, die vom Server stammen, und vermeiden gleichzeitig die Notwendigkeit einer vollst?ndigen Aktualisierung. Auf diese Weise teilweise Updates zu erstellen, kann bei der Erstellung von Flüssigkeitsnutzererfahrungen wirksam sein und die auf dem Server gesetzte Last verringern.
Dies ist die Anatomie einer grundlegenden AJAX -Anfrage:
var xhr = new XMLHttpRequest(); xhr.open('GET', 'send-ajax-data.php'); xhr.send(null);
Hier erstellen wir eine Instanz der erforderlichen Klasse, um eine HTTP -Anforderung an den Server zu stellen. Wir rufen dann seine offene Methode auf und geben die HTTP -Anforderungsmethode als erste Parameter und die URL der Seite an, die wir als zweites anfordern. Schlie?lich nennen wir seine Send -Methode, die Null als Parameter übergeben wird. Wenn die Anforderung nach dem Abbau der Anfrage (hier verwenden wir GET), sollte dieser Parameter alle Daten enthalten, die wir mit der Anfrage senden m?chten.
Und so würden wir mit der Antwort vom Server umgehen:
xhr.onreadystatechange = function () { var DONE = 4; // readyState 4 means the request is done. var OK = 200; // status 200 is a successful return. if (xhr.readyState === DONE) { if (xhr.status === OK) { console.log(xhr.responseText); // 'This is the returned text.' } else { console.log('Error: ' + xhr.status); // An error occurred during the request. } } };
Die OnReadyStatechange ist asynchron, was bedeutet, dass er jederzeit aufgerufen wird. Diese Art von Funktionen sind Rückrufe - eine, die aufgerufen wird, sobald einige Verarbeitungen beendet sind. In diesem Fall findet die Verarbeitung auf dem Server statt.
Für diejenigen, die mehr über die Grundlagen von Ajax erfahren m?chten, hat das MDN -Netzwerk einen guten Leitfaden.
zu jQuery oder nicht zu jQuery?
Die gute Nachricht ist also, dass der obige Code in den neuesten gro?en Browsern funktioniert. Die schlechte Nachricht ist, dass es ziemlich verworren ist. Yuck! Ich stecke bereits eine elegante L?sung.
Mit JQuery k?nnte man den gesamten Ausschnitt kondensieren, um:
$.ajax({ url: 'send-ajax-data.php', }) .done(function(res) { console.log(res); }) .fail(function(err) { console.log('Error: ' + err.status); });
was sch?n ist. Und in der Tat ist JQuery für viele, einschlie?lich Ihrer wirklich, zum De -facto -Standard geworden, wenn es um Ajax geht. Aber wei?t du was? Dies muss nicht der Fall sein. JQuery existiert, um die h?ssliche Dom -API zu umgehen. Aber ist es wirklich so h?sslich? Oder unverst?ndlich?
Im Rest dieses Artikels m?chte ich Verbesserungen an der Ajax -API in Vanille -JavaScript untersuchen. Die gesamte Spezifikation finden Sie im W3C. Was mir an dieser Spezifikation auff?llt, ist der Name. Es handelt sich nicht mehr um "xmlHttprequest Level 2", sondern "XMLHTTPrequest Level 1" - ein Ergebnis einer 2011er Fusion zwischen den beiden Spezifikationen. In Zukunft wird es aus Sicht der Standards als einzelne Einheit behandelt und der lebende Standard wird XMLHTTPREquest genannt. Dies zeigt, dass die Community Engagement gibt, sich an einen Standard zu halten, und dies kann nur gute Nachrichten für Entwickler bedeuten, die sich von JQuery befreien m?chten.
Also lass uns loslegen…
Setup
Für diesen Artikel verwende ich Node.js im Back-End. Ja, es gibt JavaScript im Browser und auf dem Server. Das Back-End von Node.js ist schlank. Ich ermutige Sie, die gesamte Demo auf GitHub herunterzuladen und mitzumachen. Hier ist das Fleisch und die Kartoffeln des Servers:
var xhr = new XMLHttpRequest(); xhr.open('GET', 'send-ajax-data.php'); xhr.send(null);
Dies überprüft die Anforderungs -URL, um festzustellen, wie die App reagieren soll. Wenn die Anfrage aus dem Skriptverzeichnis stammte, wird die entsprechende Datei mit dem Inhaltstyp der Anwendung/JavaScript bedient. Andernfalls wissen wir, dass wir mit einer AJAX-Anfrage zu tun haben und angemessen reagieren k?nnen. Und wenn keiner davon der Fall ist, wird die Dateiansichten/index.html bedient.
Ich werde den kommentierten Abschnitt erweitern, w?hrend wir vom Server in Ajax -Antworten eintauchen. In Node.js musste ich mit dem Render und Httphandler ein schweres Leben machen:
xhr.onreadystatechange = function () { var DONE = 4; // readyState 4 means the request is done. var OK = 200; // status 200 is a successful return. if (xhr.readyState === DONE) { if (xhr.status === OK) { console.log(xhr.responseText); // 'This is the returned text.' } else { console.log('Error: ' + xhr.status); // An error occurred during the request. } } };
Die Renderfunktion liest asynchron den Inhalt der angeforderten Datei. Es wird ein Hinweis auf die HTTPHandler -Funktion übergeben, die es dann als Rückruf ausführt. Die Funktion HTTPHandler prüft nach Vorhandensein eines Fehlerobjekts (das beispielsweise vorhanden w?re, wenn die angeforderte Datei nicht ge?ffnet werden kann). Das Bereitstellen von allem ist gut, dient dann dem Inhalt der Datei mit dem entsprechenden HTTP -Statuscode und Inhaltstyp.
Testen Sie die API
Schreiben wir wie bei jeder Sound-Back-End-API einige Einheiten-Tests, um sicherzustellen, dass sie funktioniert. Für diese Tests rufe ich Supertest und Mokka um Hilfe:
$.ajax({ url: 'send-ajax-data.php', }) .done(function(res) { console.log(res); }) .fail(function(err) { console.log('Error: ' + err.status); });
Diese stellen sicher, dass unsere App mit dem richtigen Inhaltstyp und dem HTTP -Statuscode auf verschiedene Anforderungen antwortet. Sobald Sie die Abh?ngigkeiten installiert haben, k?nnen Sie diese Tests über den Befehl mit dem NPM -Test ausführen.
Die Schnittstelle
Schauen wir uns nun die Benutzeroberfl?che an, die wir in HTML erstellen:
// app.js var app = http.createServer(function (req, res) { if (req.url.indexOf('/scripts/') >= 0) { render(req.url.slice(1), 'application/javascript', httpHandler); } else if (req.headers['x-requested-with'] === 'XMLHttpRequest') { // Send Ajax response } else { render('views/index.html', 'text/html', httpHandler); } });
Die HTML sieht gut und ordentlich aus. Wie Sie sehen k?nnen, geschieht die gesamte Aufregung in JavaScript.
OnreadyState gegen Onload
Wenn Sie ein kanonisches Ajax -Buch durchlaufen, finden Sie m?glicherweise überall Onreadystate. Diese Rückruffunktion ist komplett mit verschachtelten IFs und viel Flusen, die es schwierig machen, sich von der Spitze Ihres Kopfes zu erinnern. Lassen Sie uns den Onreadystate- und Onload -Ereignissen von Kopf an Kopf setzen.
var xhr = new XMLHttpRequest(); xhr.open('GET', 'send-ajax-data.php'); xhr.send(null);
Dies ist die Ausgabe in der Konsole:
Das Onreadystate -Ereignis feuert überall. Es feuert zu Beginn jeder Anfrage am Ende und manchmal, nur weil es wirklich gern gefeuert wird. Laut der Spezifikation feuert das Onload -Ereignis nur dann aus, wenn die Anfrage erfolgreich ist. Das Onload -Ereignis ist also eine moderne API, die Sie in Sekunden lang gut genutzt werden k?nnen. Das Onreadystate -Ereignis ist für rückw?rts kompatibel. Das Onload -Ereignis sollte jedoch Ihr Tool der Wahl sein. Das Onload -Ereignis sieht aus wie der Erfolg auf JQuery, nicht?
Es ist Zeit, die 5 -lb -Hanteln beiseite zu legen und zu Arm Curls weiterzugehen.
Anforderungsheader
einstellenjQuery setzt Anforderungsheader unter den Cover, sodass Ihre Back-End-Technologie wei?, dass es sich um eine AJAX-Anfrage handelt. Im Allgemeinen ist es dem Back-End egal, woher die Get-Anfrage stammt, solange er die richtige Antwort sendet. Dies ist praktisch, wenn Sie Ajax und HTML mit derselben Web -API unterstützen m?chten. Schauen wir uns also an, wie Sie Anforderungsheader in Vanille Ajax festlegen:
xhr.onreadystatechange = function () { var DONE = 4; // readyState 4 means the request is done. var OK = 200; // status 200 is a successful return. if (xhr.readyState === DONE) { if (xhr.status === OK) { console.log(xhr.responseText); // 'This is the returned text.' } else { console.log('Error: ' + xhr.status); // An error occurred during the request. } } };
Damit k?nnen wir Node.js einchecken:
$.ajax({ url: 'send-ajax-data.php', }) .done(function(res) { console.log(res); }) .fail(function(err) { console.log('Error: ' + err.status); });
Wie Sie sehen, ist Vanille Ajax eine flexible und moderne Front-End-API. Es gibt eine Menge Ideen, für die Sie Anforderungsheader verwenden k?nnen, und eine davon ist die Versionierung. Nehmen wir zum Beispiel an, ich m?chte mehr als eine Version dieser Web -API unterstützen. Dies ist nützlich, wenn ich keine URLs brechen und stattdessen einen Mechanismus bereitstellen m?chte, in dem Kunden die gewünschte Version ausw?hlen k?nnen. Wir k?nnen den Anforderungsheader so festlegen wie SO:
// app.js var app = http.createServer(function (req, res) { if (req.url.indexOf('/scripts/') >= 0) { render(req.url.slice(1), 'application/javascript', httpHandler); } else if (req.headers['x-requested-with'] === 'XMLHttpRequest') { // Send Ajax response } else { render('views/index.html', 'text/html', httpHandler); } });
und im Back-End versuchen Sie:
// app.js function render(path, contentType, fn) { fs.readFile(__dirname + '/' + path, 'utf-8', function (err, str) { fn(err, str, contentType); }); } var httpHandler = function (err, str, contentType) { if (err) { res.writeHead(500, {'Content-Type': 'text/plain'}); res.end('An error has occured: ' + err.message); } else { res.writeHead(200, {'Content-Type': contentType}); res.end(str); } };
node.js gibt Ihnen ein Header -Objekt, mit dem Sie nach Anforderungsüberschriften überprüfen k?nnen. Der einzige Trick ist, dass es sie in Kleinbuchstaben liest.
Wir sind am Haus und haben sich nicht schwitzen lassen! Sie fragen sich vielleicht, was gibt es noch zu wissen über Ajax? Nun, wie w?re es mit ein paar ordentlichen Tricks.
Antworttypen
Sie fragen sich vielleicht, warum ResponText die Serverantwort enth?lt, wenn alles, mit dem ich arbeite, einfach alte JSON ist. Es stellt sich heraus, dass ich nicht den richtigen Reponsetype eingestellt habe. Dieses AJAX-Attribut ist gro?artig, um der Front-End-API zu sagen, welche Art von Antwort vom Server zu erwarten ist. Lassen Sie uns dies also gut nutzen:
var xhr = new XMLHttpRequest(); xhr.open('GET', 'send-ajax-data.php'); xhr.send(null);
Fantastisch, anstatt einen einfachen Text zurückzuschicken, den ich dann in JSON analysieren muss, kann ich der API sagen, was sie erwarten soll. Diese Funktion ist in fast den neuesten gro?en Browsern erh?ltlich. JQuery führt diese Art von Konvertierung natürlich automatisch durch. Aber ist es nicht gro?artig, dass wir jetzt eine bequeme M?glichkeit haben, dasselbe in einfachem JavaScript zu tun? Vanilla Ajax unterstützt viele andere Antworttypen, einschlie?lich XML.
Leider ist im Internet Explorer die Geschichte nicht ganz so gro?artig. Ab dem IE 11 muss das Team noch Unterstützung für xhr.responsetype = ‘JSON’ unterstützen. Diese Funktion soll auf Microsoft Edge ankommen. Der Fehler ist jedoch seit fast zwei Jahren zum Zeitpunkt des Schreibens hervorragend. Ich vermute, dass die Leute von Microsoft hart gearbeitet haben, um den Browser zu überarbeiten. Hoffen wir, dass Microsoft Edge, auch bekannt als Project Spartan, seine Versprechen eingibt.
leider, wenn Sie dieses Problem umgehen müssen:
xhr.onreadystatechange = function () { var DONE = 4; // readyState 4 means the request is done. var OK = 200; // status 200 is a successful return. if (xhr.readyState === DONE) { if (xhr.status === OK) { console.log(xhr.responseText); // 'This is the returned text.' } else { console.log('Error: ' + xhr.status); // An error occurred during the request. } } };
Cache Busting
Ein Browser -Feature -Feature, die Menschen neigen, ist die F?higkeit, Ajax -Anfragen zu zwischenstrichen. Internet Explorer macht dies beispielsweise standardm??ig. Ich hatte einmal stundenlang Probleme, herauszufinden, warum mein Ajax deswegen nicht funktioniert. Glücklicherweise bastet Jquery den Browser -Cache standardm??ig. Nun, Sie k?nnen in einfachem Ajax zu und ist ziemlich einfach:
$.ajax({ url: 'send-ajax-data.php', }) .done(function(res) { console.log(res); }) .fail(function(err) { console.log('Error: ' + err.status); });
Laut der JQuery -Dokumentation ist nur eine Zeitstempelabfrage an das Ende der Anfrage angeh?ngt. Dies macht die Anfrage etwas einzigartig und pleite den Browser -Cache. Sie k?nnen sehen, wie dies aussieht, wenn Sie HTTP AJAX -Anfragen feuern:
tada! Alles ohne Drama.
Schlussfolgerung
Ich hoffe, Sie haben die 300 -Pfund -Bankpresse Vanille Ajax früher genossen. Einer zu einer Zeit war Ajax ein schreckliches Tier, aber nicht mehr. Tats?chlich haben wir alle Grundlagen von Ajax ohne die Krücken, ?hm Fesseln, von JQuery abgelegt.
Ich werde Sie mit einer pr?gnanten M?glichkeit lassen, Ajax -Anrufe zu t?tigen:
// app.js var app = http.createServer(function (req, res) { if (req.url.indexOf('/scripts/') >= 0) { render(req.url.slice(1), 'application/javascript', httpHandler); } else if (req.headers['x-requested-with'] === 'XMLHttpRequest') { // Send Ajax response } else { render('views/index.html', 'text/html', httpHandler); } });
Und so sieht die Antwort aus:
Vergessen Sie nicht, Sie k?nnen die gesamte Demo auf GitHub finden. Ich würde gerne Ihre Gedanken mit und ohne jQuery in den Kommentaren h?ren.
h?ufig gestellte Fragen (FAQs) auf Vanille Ajax ohne jQuery
Was ist Vanilla ajax und wie unterscheidet es sich von JQuery Ajax? W?hrend JQuery AJAX eine vereinfachte, kreuzbrowserkompatible Methode zum Umgang mit AJAX bietet, bietet Vanilla Ajax Ihnen mehr Kontrolle und Verst?ndnis der zugrunde liegenden Prozesse. Es ist auch eine gro?artige Option, wenn Sie Abh?ngigkeiten von externen Bibliotheken wie JQuery reduzieren m?chten.
Wie erstelle ich eine grundlegende AJAX -Anforderung mit Vanilla javaScript? Mit diesem Objekt k?nnen Sie HTTP- oder HTTPS -Anforderungen an einen Webserver senden und die Server -Antwortdaten in Ihr Skript zurückladen. Hier ist ein einfaches Beispiel:
var xhr = new xmlhttprequest (); xhr.onreadyStatechange = function () {
if (xhr.readystate == 4 && xhr.status == 200)
console.log (json.parse (xhr.responSetext)); ??>
Fehlerbehandlung in Vanille -Ajax kann mit dem Onerror -Ereignishandler des XMLHTTPrequest -Objekts durchgeführt werden. Dieses Ereignis wird ausgel?st, wenn bei der AJAX -Anforderung ein Fehler auftritt. Hier ist ein Beispiel:
var xhr = new xmlhttprequest (); .onError = function () {
console.log ("anfordern fehlgeschlagen ");
}; Die offene Methode des XMLHTTPrequest -Objekts akzeptiert die HTTP -Methode als erstes Argument. Sie k?nnen also "Get" durch "Post" ersetzen. Denken Sie daran, den Header vom Typ des Inhalts mit der SetRequestHeader-Methode vor dem Senden der Anforderung einzustellen. Anfrage, Sie müssen das JSON -Objekt ansprechen und als K?rper der Anfrage senden. Setzen Sie den Inhaltsheader auch auf Anwendung/JSON. Hier ist ein Beispiel:
Wie kann ich den Fortschritt einer AJAX -Anforderung überwachen? Der On -Progress -Ereignishandler des XMLHTTPrequest -Objekts. Dieses Ereignis wird mehrfach ausgel?st und liefert die aktuellen Fortschrittsinformationen . Es handelt sich um eine native JavaScript -Funktion und h?ngt nicht von einer externen Bibliothek ab.
wird Vanilla ajax von allen Browsern unterstützt? ?ltere Versionen von Internet Explorer (dh 6 und früher) verwenden jedoch ein ActiveX -Objekt für Ajax.
Das obige ist der detaillierte Inhalt vonEin Leitfaden zu Vanilla ajax ohne jQuery. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Hei?e KI -Werkzeuge

Undress AI Tool
Ausziehbilder kostenlos

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Clothoff.io
KI-Kleiderentferner

Video Face Swap
Tauschen Sie Gesichter in jedem Video mühelos mit unserem v?llig kostenlosen KI-Gesichtstausch-Tool aus!

Hei?er Artikel

Hei?e Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Es gibt drei g?ngige M?glichkeiten, HTTP-Anforderungen in Node.js zu initiieren: Verwenden Sie integrierte Module, Axios und Knotenfetch. 1. Verwenden Sie das integrierte HTTP/HTTPS-Modul ohne Abh?ngigkeiten, das für grundlegende Szenarien geeignet ist, jedoch eine manuelle Verarbeitung von Datengen?hten und Fehlerüberwachung erfordert, z. 2.Axios ist eine auf Versprechen basierende Bibliothek von Drittanbietern. Es verfügt über eine kurze Syntax und leistungsstarke Funktionen, unterstützt Async/Auseait, automatische JSON -Konvertierung, Interceptor usw. Es wird empfohlen, asynchrone Anforderungsvorg?nge zu vereinfachen. 3.Node-Fetch bietet einen Stil ?hnlich dem Browser-Abruf, basierend auf Versprechen und einfacher Syntax

JavaScript -Datentypen sind in primitive Typen und Referenztypen unterteilt. Zu den primitiven Typen geh?ren String, Anzahl, Boolesche, Null, undefiniertes und Symbol. Die Werte sind unver?nderlich und Kopien werden bei der Zuweisung von Werten kopiert, sodass sie sich nicht gegenseitig beeinflussen. Referenztypen wie Objekte, Arrays und Funktionen speichern Speicheradressen, und Variablen, die auf dasselbe Objekt zeigen, wirkt sich gegenseitig aus. Typeof und Instanz k?nnen verwendet werden, um die Typen zu bestimmen, aber auf die historischen Probleme der TypeOfnull zu achten. Das Verst?ndnis dieser beiden Arten von Unterschieden kann dazu beitragen, einen stabileren und zuverl?ssigeren Code zu schreiben.

Hallo, JavaScript -Entwickler! Willkommen in den JavaScript -Nachrichten dieser Woche! Diese Woche konzentrieren wir uns auf: Oracas Markenstreit mit Deno, neue JavaScript -Zeitobjekte werden von Browsern, Google Chrome -Updates und einigen leistungsstarken Entwickler -Tools unterstützt. Fangen wir an! Der Markenstreit von Oracle mit dem Versuch von Deno Oracle, ein "JavaScript" -Marke zu registrieren, hat Kontroversen verursacht. Ryan Dahl, der Sch?pfer von Node.js und Deno, hat eine Petition zur Absage der Marke eingereicht, und er glaubt, dass JavaScript ein offener Standard ist und nicht von Oracle verwendet werden sollte

Cacheapi ist ein Tool, das der Browser zur Cache -Netzwerkanfragen bereitstellt, das h?ufig in Verbindung mit dem Servicearbeiter verwendet wird, um die Leistung der Website und die Offline -Erfahrung zu verbessern. 1. Es erm?glicht Entwicklern, Ressourcen wie Skripte, Stilbl?tter, Bilder usw. Zu speichern; 2. Es kann die Cache -Antworten entsprechend den Anfragen übereinstimmen. 3. Es unterstützt das L?schen bestimmter Caches oder das L?schen des gesamten Cache. 4.. Es kann Cache -Priorit?ts- oder Netzwerkpriorit?tsstrategien durch Servicearbeiter implementieren, die sich auf Fetch -Ereignisse anh?ren. 5. Es wird h?ufig für die Offline -Unterstützung verwendet, die wiederholte Zugriffsgeschwindigkeit, die Vorspannungs -Schlüsselressourcen und den Inhalt des Hintergrundaktualisierungss beschleunigen. 6. Wenn Sie es verwenden, müssen Sie auf die Cache -Versionskontrolle, Speicherbeschr?nkungen und den Unterschied zum HTTP -Caching -Mechanismus achten.

Versprechen ist der Kernmechanismus für den Umgang mit asynchronen Operationen in JavaScript. Das Verst?ndnis von Kettenanrufen, Fehlerbehebung und Kombination ist der Schlüssel zum Beherrschen ihrer Anwendungen. 1. Der Kettenaufruf gibt ein neues Versprechen durch .then () zurück, um asynchrone Prozessverkampferung zu realisieren. Jeder. Dann () erh?lt das vorherige Ergebnis und kann einen Wert oder ein Versprechen zurückgeben; 2. Die Fehlerbehandlung sollte .Catch () verwenden, um Ausnahmen zu fangen, um stille Ausf?lle zu vermeiden, und den Standardwert im Fang zurückgeben, um den Prozess fortzusetzen. 3. Combinatoren wie Promise.All () (erfolgreich erfolgreich erfolgreich nach allen Erfolg), Versprechen.Race () (Die erste Fertigstellung wird zurückgegeben) und Versprechen.Allsettled () (Warten auf alle Fertigstellungen)

JavaScript-Array-integrierte Methoden wie .Map (), .filter () und .Reduce () k?nnen die Datenverarbeitung vereinfachen. 1) .Map () wird verwendet, um Elemente eins in eins um Neuarrays zu konvertieren; 2) .Filter () wird verwendet, um Elemente durch Bedingung zu filtern; 3) .Reduce () wird verwendet, um Daten als einzelner Wert zu aggregieren; Missbrauch sollte bei der Verwendung vermieden werden, was zu Nebenwirkungen oder Leistungsproblemen führt.

Die Ereignisschleife von JavaScript verwaltet asynchrone Vorg?nge, indem sie Call -Stapel, Webapis und Task -Warteschlangen koordinieren. 1. Der Anrufstack führt synchronen Code aus, und wenn er auf asynchrone Aufgaben begegnet, wird er zur Verarbeitung an Webapi übergeben. 2. Nachdem das Webapi die Aufgabe im Hintergrund abgeschlossen hat, wird der Rückruf in die entsprechende Warteschlange (Makroaufgabe oder Micro -Aufgabe) eingebaut. 3. Die Ereignisschleife prüft, ob der Anrufstapel leer ist. Wenn es leer ist, wird der Rückruf aus der Warteschlange herausgenommen und zur Ausführung in den Anrufstapel geschoben. V. 5. Das Verst?ndnis der Ereignisschleife hilft zu vermeiden, den Haupt -Thread zu blockieren und die Codeausführungsreihenfolge zu optimieren.

Ereignisblasen verbreiten sich vom Zielelement nach au?en zum Vorfahrknoten aus, w?hrend Ereignisfassungen sich von der ?u?eren Schicht nach innen zum Zielelement ausbreiten. 1. Ereignisblasen: Nach dem Klicken auf das untergeordnete Element l?st das Ereignis den H?rer des übergeordneten Elements nach oben aus. Nach dem Klicken auf die Schaltfl?che gibt es beispielsweise zuerst die untergeordnete und dann entzündete Eltern aus. 2. Ereigniserfassung: Stellen Sie den dritten Parameter auf True ein, so dass der H?rer in der Erfassungsstufe ausgeführt wird, z. B. das Ausl?sen des Capture -Listeners des übergeordneten Elements, bevor Sie auf die Schaltfl?che klicken. 3. Praktische Verwendungszwecke umfassen ein einheitliches Management von Ereignissen für Kinderelemente, Vorverarbeitung und Leistungsoptimierung von Abfangen. V.
