NodeJS verwendet den jQuery-Selektor, um DOM_jquery zu betreiben
Hinweis* Dies ist ein „altes“ Projekt seit mehr als zwei Jahren, das es Ihnen ermöglicht, den Back-End-HTML/XML nach dem Entfernen des Browserkompatibilitäts-bezogenen Codes wie das Front-End-DOM zu verwenden , Operationen sind 8-mal schneller als JSDOM. Wir haben bereits erwähnt, dass JSDOM schwerwiegende Leistungsprobleme aufweist: Debug Node.JS: Wie finden wir Speicherlecks und Endlosschleifen?
Cheerio
Schnell, flexibel, serverseitig mit jQuery.
Einführung
Testen Sie Ihr serverseitiges HTML:
var cheerio = require('cheerio'),
$ = cheerio.load('
Hallo Welt
');$('h2.title').text('Hallo!');
$('h2').addClass('welcome');
$.html();
//=>
Hallo!
Installieren
npm install cheerio
Funktion
❤ Vertraute Syntax: Cheerio implementiert eine Teilmenge der Kern-jQuery. Cheerio entfernt jegliche DOM-Inkonsistenz und Browserkompatibilitätsunterstützung aus der jQuery-Bibliothek und präsentiert seine wirklich großartige API.
ϟ Extrem schnell: Cheerio verwendet ein sehr einfaches, konsistentes DOM-Modell. Dies führt zu unglaublichen Leistungssteigerungen beim Parsen, Bearbeiten und Rendern. Vorläufige End-to-End-Benchmarks zeigen, dass Cheerio etwa achtmal schneller ist als JSDOM.
❁Unglaubliche Flexibilität: Kompatibel mit htmlparser2API. Cheerio kann fast jedes HTML- oder XML-Dokument analysieren.
Wie wäre es mit JSDOM?
Ich schreibe Cheerio, weil ich mit JSOM zunehmend frustriert bin. Für mich sind es drei große Probleme, auf die ich immer wieder stoße:
• Der integrierte Parser von JSDOM ist zu streng: Der mit JSDOM gebündelte HTML-Parser kann derzeit viele beliebte Websites nicht verarbeiten.
•JSDOM ist zu langsam: Beim Parsen großer Websites kommt es bei JSDOM zu offensichtlichen Verzögerungen.
•JSDOM fühlt sich zu schwer an: Der Zweck von JSDOM besteht darin, eine DOM-Umgebung bereitzustellen, die mit dem übereinstimmt, was wir im Browser sehen (beachten Sie * ausführbares JavaScript). Ich habe so etwas nie wirklich gebraucht, ich möchte nur eine einfache, vertraute Methode zur HTML-Manipulation.
Wann sollte JSDOM verwendet werden?
Cheerio kann nicht alle deine Probleme lösen. Wenn ich in einer browserähnlichen Umgebung arbeiten muss, verwende ich weiterhin JSDOM, insbesondere wenn ich automatisierte Funktionstests auf dem Server durchführen möchte.
API
Beispiel-HTML-Code, den wir verwenden werden:
- Apple
- Orange
- Pear
Laden
Zuerst müssen Sie den HTML-Code laden. Dieser Schritt wird in jQuery automatisch ausgeführt, da jQuery in einer Echtzeit-DOM-Umgebung ausgeführt wird. Wir müssen das HTML-Dokument an Cheerio übergeben.
Dies ist die bevorzugte Methode:
var cheerio = require('cheerio'),
$ = cheerio.load('
- ...
Alternativ können Sie HTML als String-Parameter übergeben:
$ = require('cheerio');
$('ul', '
- ...
oder als Wurzelknoten
$ = require('cheerio');
$('li', 'ul', '
- ...
Sie können die Standard-Parsing-Optionen, die Sie ändern müssen, auch über ein zusätzliches .load() laden:
$ = cheerio.load('
- ...
NormalizeWhitespace: true,
xmlMode: true
});
Diese Parsing-Optionen sind direkt von htmlparser2 entlehnt, sodass alle Parameter, die in htmlparser2 verwendet werden können, auch in cheerio gültig sind. Die Standardoption ist:
{
NormalizeWhitespace: false,
xmlMode: false,
decodeEntities: true
}
Selektoren
Cheerios Selektoren sind fast identisch mit denen von jQuery, daher ist die API sehr ähnlich.
$( Selektor, [Kontext], [Stamm] )
Der Selektor wählt Elemente in der Reihenfolge aus: root[root, optional]->Context[context, optional]->selector. Selektoren und Kontexte können ein Zeichenfolgenausdruck, ein DOM-Element oder ein Array von DOM-Elementen sein. Das Root-Dokument ist normalerweise das Root-Element des HTML-Dokuments.
Wie jQuery durchläuft und manipuliert diese Auswahlmethode das Dokument vom Startpunkt aus. Dies ist die primäre Möglichkeit, Elemente aus einem Dokument auszuwählen, ist jedoch nicht wie die CSSSelect-Bibliothek (Sizzle-Selektor) von jQuery aufgebaut.
$('.apple', '#fruits').text()
//=> Apfel
$('ul .pear').attr('class')
//=> Birne
$('li[class=orange]').html()
//=>
Attribute
Methoden zum Abrufen und Ändern von Eigenschaften.
.attr( name, value )
Methoden zum Abrufen und Festlegen von Eigenschaften. Ruft nur den Attributwert des ersten übereinstimmenden Elements ab. Wenn der Wert einer Set-Eigenschaft auf null gesetzt ist, wird die Eigenschaft entfernt. Sie können Map und Function auch wie jQuery übergeben.
$('ul').attr('id')
//=> Früchte
$('.apple').attr('id', 'favorite').html()
//=>
.data( Name, Wert)
Methoden zum Abrufen und Festlegen von Dateneigenschaften. Ruft nur das erste Element der Übereinstimmung ab oder legt es fest.
$('').data()
//=> { appleColor: 'red' }
$('').data('data-apple-color')
//=> 'rot'
var apple = $('.apple').data('kind', 'mac')
apple.data('kind')
//=> 'mac'
.val( [Wert] )
Methoden zum Abrufen und Festlegen von Eingabe-, Auswahl- und Textbereichswerten. Hinweis: Karte wird unterstützt, Funktion wurde noch nicht hinzugefügt.
$('input[type="text"]').val()
//=> input_text
$('input[type="text"]').val('test').html()
//=>
Weitere APIs finden Sie auf der offiziellen Website

Heiße KI -Werkzeuge

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

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

Undress AI Tool
Ausziehbilder kostenlos

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)

Heiße Themen



Node.js ist eine serverseitige JavaScript-Laufzeitumgebung, während Vue.js ein clientseitiges JavaScript-Framework zum Erstellen interaktiver Benutzeroberflächen ist. Node.js wird für die serverseitige Entwicklung verwendet, beispielsweise für die Entwicklung von Back-End-Service-APIs und die Datenverarbeitung, während Vue.js für die clientseitige Entwicklung verwendet wird, beispielsweise für Single-Page-Anwendungen und reaktionsfähige Benutzeroberflächen.

Node.js kann als Backend-Framework verwendet werden, da es Funktionen wie hohe Leistung, Skalierbarkeit, plattformübergreifende Unterstützung, ein umfangreiches Ökosystem und einfache Entwicklung bietet.

Um eine Verbindung zu einer MySQL-Datenbank herzustellen, müssen Sie die folgenden Schritte ausführen: Installieren Sie den MySQL2-Treiber. Verwenden Sie mysql2.createConnection(), um ein Verbindungsobjekt zu erstellen, das die Hostadresse, den Port, den Benutzernamen, das Passwort und den Datenbanknamen enthält. Verwenden Sie „connection.query()“, um Abfragen durchzuführen. Verwenden Sie abschließend Connection.end(), um die Verbindung zu beenden.

Die folgenden globalen Variablen sind in Node.js vorhanden: Globales Objekt: global Kernmodul: Prozess, Konsole, erforderlich Laufzeitumgebungsvariablen: __dirname, __filename, __line, __column Konstanten: undefiniert, null, NaN, Infinity, -Infinity

Es gibt zwei npm-bezogene Dateien im Node.js-Installationsverzeichnis: npm und npm.cmd. Die Unterschiede sind wie folgt: unterschiedliche Erweiterungen: npm ist eine ausführbare Datei und npm.cmd ist eine Befehlsfensterverknüpfung. Windows-Benutzer: npm.cmd kann über die Eingabeaufforderung verwendet werden, npm kann nur über die Befehlszeile ausgeführt werden. Kompatibilität: npm.cmd ist spezifisch für Windows-Systeme, npm ist plattformübergreifend verfügbar. Nutzungsempfehlungen: Windows-Benutzer verwenden npm.cmd, andere Betriebssysteme verwenden npm.

Die Hauptunterschiede zwischen Node.js und Java sind Design und Funktionen: Ereignisgesteuert vs. Thread-gesteuert: Node.js ist ereignisgesteuert und Java ist Thread-gesteuert. Single-Threaded vs. Multi-Threaded: Node.js verwendet eine Single-Threaded-Ereignisschleife und Java verwendet eine Multithread-Architektur. Laufzeitumgebung: Node.js läuft auf der V8-JavaScript-Engine, während Java auf der JVM läuft. Syntax: Node.js verwendet JavaScript-Syntax, während Java Java-Syntax verwendet. Zweck: Node.js eignet sich für I/O-intensive Aufgaben, während Java für große Unternehmensanwendungen geeignet ist.

Ja, Node.js ist eine Backend-Entwicklungssprache. Es wird für die Back-End-Entwicklung verwendet, einschließlich der Handhabung serverseitiger Geschäftslogik, der Verwaltung von Datenbankverbindungen und der Bereitstellung von APIs.

Serverbereitstellungsschritte für ein Node.js-Projekt: Bereiten Sie die Bereitstellungsumgebung vor: Erhalten Sie Serverzugriff, installieren Sie Node.js, richten Sie ein Git-Repository ein. Erstellen Sie die Anwendung: Verwenden Sie npm run build, um bereitstellbaren Code und Abhängigkeiten zu generieren. Code auf den Server hochladen: über Git oder File Transfer Protocol. Abhängigkeiten installieren: Stellen Sie eine SSH-Verbindung zum Server her und installieren Sie Anwendungsabhängigkeiten mit npm install. Starten Sie die Anwendung: Verwenden Sie einen Befehl wie node index.js, um die Anwendung zu starten, oder verwenden Sie einen Prozessmanager wie pm2. Konfigurieren Sie einen Reverse-Proxy (optional): Verwenden Sie einen Reverse-Proxy wie Nginx oder Apache, um den Datenverkehr an Ihre Anwendung weiterzuleiten
