国产av日韩一区二区三区精品,成人性爱视频在线观看,国产,欧美,日韩,一区,www.成色av久久成人,2222eeee成人天堂

Inhaltsverzeichnis
Virtuelles Scrollen
Beispiel aus der Praxis
Service-Setup
Komponenten-Setup
Fazit
Heim Web-Frontend CSS-Tutorial Nahezu unendliches Scrollen mit Angular

Nahezu unendliches Scrollen mit Angular

Jan 07, 2025 pm 08:15 PM

Unendliches Scrollen gibt es schon seit einiger Zeit. Die Grundidee: W?hrend Sie scrollen, werden unten neue Inhalte geladen, sodass ein scheinbar endloser Scrollvorgang entsteht. Die Umsetzung ist einfach, aber ohne sorgf?ltige Planung leidet die Leistung. Nach ein paar erneuten Inhaltsabrufen k?nnten Hunderte von DOM-Elementen vorhanden sein, von denen viele unsichtbar sind. Glücklicherweise gibt es Muster, um dies zu mildern, und wir werden eines mit Angular untersuchen.

Virtually Infinite Scrolling with Angular

Das wollen wir vermeiden.

Virtuelles Scrollen

Virtueller Bildlauf rendert immer nur eine Teilmenge einer gro?en Liste – im Gegensatz zum unendlichen Bildlauf. Es ist ideal für gro?e Datens?tze, bei denen das Rendern aller Daten auf einmal ineffizient ist. Es werden nur sichtbare (und nahezu sichtbare) Elemente gerendert; W?hrend der Benutzer scrollt, werden Elemente dynamisch ausgetauscht. Dadurch werden DOM-Elemente erheblich reduziert und die Leistung gesteigert.

Virtuelles Scrollen funktioniert durch die Erstellung eines Containers, der der H?he des Ansichtsfensters entspricht. Nur die sichtbaren Elemente (plus ein Puffer) werden in diesem Container mit einer bestimmten Scrolltiefe gerendert, die über CSS verwaltet wird. Durch Scrollen wird der Container aktualisiert, indem neue Elemente angezeigt und aus der Ansicht entfernt werden, wobei die Scrolltiefe angepasst wird. Kombiniert man dies mit unendlichem Scrollen, entsteht eine praktisch unendliche Liste ohne Leistungseinbu?en.

Das folgende Beispiel zeigt eine Liste mit Tausenden von Elementen, rendert jedoch maximal 8 auf einmal. Durch Scrollen wird die CSS-Scrollh?he angepasst, wodurch die Illusion einer viel l?ngeren Liste entsteht.

Virtually Infinite Scrolling with Angular

Beispiel aus der Praxis

Lassen Sie uns eine Angular-Anwendung erstellen, die Medien aus der paginierten API von Reddit abruft und sie in einer virtuellen Bildlaufliste anzeigt. Es enth?lt eine Suchleiste für die Subreddit-Auswahl und einen Filter. Wenn Sie nach unten scrollen, werden weitere Inhalte geladen. Unsere wichtigsten Anforderungen:

  1. Angetrieben durch RxJS Observables und die asynchrone Pipe.
  2. Setzt Inhalte bei Subreddit- oder Filter?nderungen zurück, jedoch nicht beim Anh?ngen neuer Inhalte.
  3. Speichert vorherige Inhalte im Speicher für nahtloses Scrollen nach oben/unten ohne redundante API-Aufrufe.

Wir verwenden das Paket @angular/cdk (das die Virtual Scroller-Komponente enth?lt). Installieren Sie es mit npm i @angular/cdk.

W?hrend dieses Beispiel Angular verwendet, sind ?hnliche Muster auf React, Vue oder Vanilla JavaScript anwendbar. Eine grundlegende Demo, die die zugrunde liegenden Prinzipien veranschaulicht, ist hier verfügbar.

Service-Setup

Zuerst erstellen wir einen Dienst zum Abrufen von Inhalten aus der Reddit-API mithilfe von Angulars HttpClient und RxJS Observables, um den Subreddit-Namen und -Filter zu verwalten. (Der Kürze halber wurde ein Teil des Codes weggelassen; die vollst?ndige Implementierung finden Sie hier).

// ... (Omitted for brevity) ...

Die Methode zum Abrufen von Inhalten verfolgt bestimmte Eigenschaften w?hrend Datenanforderungen. Der Abfragezeichenfolge wird eine page-Eigenschaft hinzugefügt, um sicherzustellen, dass nach dem letzten Element neuer Inhalt abgerufen wird. Wir filtern auch NSFW-Inhalte und Artikel heraus, denen ein Beitragshinweis fehlt. Dadurch wird sichergestellt, dass nur erwartete Inhalte angezeigt werden.

// ... (Omitted for brevity) ...

Das query$ Observable (zuvor weggelassen) führt verschiedene Observable-Streams zusammen, bevor Inhalte abgerufen werden. Der scan-Operator kombiniert frühere und aktuelle Stream-Ergebnisse und erstellt so ein gro?es Datenarray über mehrere Seiten.

Dies erm?glicht ein umfangreiches Scrollen; Nur Subreddit-Namen oder Filter?nderungen l?sen einen vollst?ndigen erneuten Abruf aus. nextPage, eine Eigenschaft von query$, speichert die letzte Element-ID im aktuellen Satz und wird verwendet, um zu bestimmen, welche Seite als n?chstes abgerufen werden soll, wenn man sich dem unteren Rand des virtuellen Scrollers n?hert.

// ... (Omitted for brevity) ...

Die St?rke von RxJS liegt in der Kombination und Manipulation von Datenstr?men. Dadurch k?nnen wir die Gesch?ftslogik verwalten, bevor sie die Komponente erreicht, wodurch die Komponente sauberer und wiederverwendbar bleibt.

Komponenten-Setup

Als n?chstes richten wir die Komponente so ein, dass sie Inhalte mit Angulars CdkVirtualScrollViewport anzeigt. Eine Methode übernimmt das Scrollen am unteren Rand des Ansichtsfensters und ruft die n?chste Seite über das subRedditPage$ Observable.

ab
// ... (Omitted for brevity) ...

Die Vorlage verwendet die asynchrone Pipe, um query$ zu abonnieren. Hinweis: Virtuelle Scroller werden bei Inhalten mit variabler H?he komplexer; Für die Leistung werden einheitliche Artikelh?hen empfohlen.

// ... (Omitted for brevity) ...

Die onScroll-Methode ruft mehr Inhalte ab, wenn sich der Benutzer dem Ende n?hert. Es verwendet die nextPage-ID (von query$) und sendet an subRedditPage$, wodurch der n?chste API-Aufruf ausgel?st und die Liste über query$ aktualisiert wird.

// ... (Omitted for brevity) ...

Die Suchleiste und die Tab-Steuerelemente sind ebenfalls integriert (vereinfachtes Beispiel unten).

// ... (Omitted for brevity) ...

Fazit

Dadurch entsteht ein praktisch unendlicher Scroller. Sie k?nnen es hier testen. Für die API von Reddit gelten Ratenbeschr?nkungen. Sie k?nnten sie w?hrend des Tests treffen. Weitere Details, einschlie?lich zus?tzlicher Funktionen, finden Sie im GitHub-Repository hier.

Das obige ist der detaillierte Inhalt vonNahezu unendliches Scrollen mit Angular. 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

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

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.

Clothoff.io

Clothoff.io

KI-Kleiderentferner

Video Face Swap

Video Face Swap

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

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)

Was ist 'Render-Blocking-CSS'? Was ist 'Render-Blocking-CSS'? Jun 24, 2025 am 12:42 AM

CSS -Bl?cke Seitenrenderung, da Browser inline und externe CSS standardm??ig als wichtige Ressourcen anzeigen, insbesondere mit importierten Stylesheets, Header gro?er Mengen an Inline -CSS und nicht optimierten Medienfragestilen. 1. extrahieren kritische CSS und einbetten Sie es in HTML ein; 2. Verz?gerung des Ladens nichtkritischer CSS durch JavaScript; 3.. Verwenden Sie Medienattribute, um das Laden wie Druckstile zu optimieren. 4. Komprimieren und verschmelzen CSS, um Anfragen zu reduzieren. Es wird empfohlen, Tools zum Extrahieren von Schlüssel -CSS zu verwenden, REL = "Vorspannung" zu kombinieren, und verwenden Sie die asynchrone Belastung und verwenden Sie die Medienverz?gerungsladeverletzung, um eine überm??ige Aufteilung und eine komplexe Skriptsteuerung zu vermeiden.

Externe vs. interne CSS: Was ist der beste Ansatz? Externe vs. interne CSS: Was ist der beste Ansatz? Jun 20, 2025 am 12:45 AM

ThebestApproachforcssDependsonTheProject'Sspecificneeds.forlargerProjects, externalcssisbetterDuetomaintainability;

Muss mein CSS im unteren Fall sein? Muss mein CSS im unteren Fall sein? Jun 19, 2025 am 12:29 AM

Nein, cssdoesnothavetobeinlowercase.

CSS -Fallempfindlichkeit: Verstehen, worauf es ankommt CSS -Fallempfindlichkeit: Verstehen, worauf es ankommt Jun 20, 2025 am 12:09 AM

Csssmostlycase-unempfindlich, buturlsandfontfamilynamesarecase-sensitiv.1) Eigenschaften und ValueslikeColor: rot; sensitiv.2) URLSMUTMATTHESERVER'SCASE, z.

Was ist Autoprefixer und wie funktioniert es? Was ist Autoprefixer und wie funktioniert es? Jul 02, 2025 am 01:15 AM

AutoPrefixer ist ein Tool, das die Pr?fixe von Anbietern automatisch zu CSS -Attributen basierend auf dem Zielbrowserbereich hinzufügt. 1. Es l?st das Problem, die Pr?fixe mit Fehlern manuell aufrechtzuerhalten. 2. Arbeiten Sie das POSTCSS-Plug-in-Formular durch, analysieren Sie CSS, analysieren Sie Attribute, die vorangestellt werden müssen, und generieren Sie den Code gem?? Konfiguration. 3.. 4. Notizen enthalten nicht manuelles Hinzufügen von Pr?fixen, Konfigurationsaktualisierungen, Pr?fixe nicht alle Attribute, und es wird empfohlen, sie mit dem Pr?prozessor zu verwenden.

Was sind CSS -Z?hler? Was sind CSS -Z?hler? Jun 19, 2025 am 12:34 AM

CSSCOUNTERSCANATOMATIONSNUMBERSEctions und.1) usecounter-resettoinitialize, counter-IncrementtoIncrease, und Counter () orcounters () todisplayValues.2) kombinierte withjavascriptfordynamiccontentToEsSureAccurateupdates.

CSS: Wann ist der Fall wichtig (und wann nicht)? CSS: Wann ist der Fall wichtig (und wann nicht)? Jun 19, 2025 am 12:27 AM

In CSS sind Selektor- und Attributnamen fallempfindlich, w?hrend Werte, Namen, URLs und benutzerdefinierte Attribute fallempfindlich sind. 1. Die Auswahl- und Attributnamen sind unempfindlich, z. B. Hintergrundfarbe und Hintergrundfarbe sind gleich. 2. Die hexadezimale Farbe im Wert ist fallempfindlich, aber die benannte Farbe ist fallempfindlich, wie rot und rot ist ungültig. 3. Die URLs sind fallsempfindlich und k?nnen zu Ladeproblemen von Dateien führen. 4. Benutzerdefinierte Eigenschaften (Variablen) sind fallempfindlich und Sie müssen auf die Konsistenz des Falles bei der Verwendung achten.

Was ist die Funktion conicgradient ()? Was ist die Funktion conicgradient ()? Jul 01, 2025 am 01:16 AM

Theconic-Gradient () FunctionincsScreateScircular GradecentStroTRotateColorStopsaroundAcentralPoint.1.ISISIDEALFORPieCharts, Fortschrittsindikatoren, Farbw?sche und DecorativeBackgrounds.2

See all articles