Technopedia Center
PMB University Brochure
Faculty of Engineering and Computer Science
S1 Informatics S1 Information Systems S1 Information Technology S1 Computer Engineering S1 Electrical Engineering S1 Civil Engineering

faculty of Economics and Business
S1 Management S1 Accountancy

Faculty of Letters and Educational Sciences
S1 English literature S1 English language education S1 Mathematics education S1 Sports Education
  • Registerasi
  • Brosur UTI
  • Kip Scholarship Information
  • Performance
  1. Weltenzyklopädie
  2. Lazy Loading – Wikipedia
Lazy Loading – Wikipedia 👆 Click Here!
aus Wikipedia, der freien Enzyklopädie

Lazy Loading, wörtlich „faules Laden“ (treffender etwa: „müßiges Laden“), bezeichnet in der Softwareentwicklung ein Entwurfsmuster, bei dem Datenobjekte grundsätzlich Werte oder andere, abhängige Objekte bereitstellen, diese aber erst bei einer konkreten Anfrage aus der Datenquelle holen.[1]

Das Gegenteil wird als „eager loading“ bezeichnet; hierbei werden möglichst effizient sofort alle absehbar benötigten Daten geholt.

Gründe für die Anwendung

[Bearbeiten | Quelltext bearbeiten]

Grund für die Anwendung kann sein, dass es zeit- oder ressourcenaufwendig ist, den Inhalt zu holen, etwa bei einer Datenbankabfrage, einem Webservice-Request oder einer komplexen Bearbeitung, und es anfangs noch nicht klar ist, welche Daten tatsächlich benötigt werden. Bei starker Vernetzung von Datenstrukturen würden außerdem sonst u. U. umfangreiche Kaskaden immer weiterer Ladevorgänge ausgelöst.

Implementierungsmöglichkeiten

[Bearbeiten | Quelltext bearbeiten]
Verzögerte Initialisierung (lazy initialization)
meist mit Eigenschaften (properties) im Programmcode realisiert; diese sind, von außen betrachtet, Werte oder Objekte, wobei erst bei deren Abfrage oder Veränderung der initialisierende Programmcode ausgeführt wird. So führt dann der Abruf eines erwarteten Inhalts einer Eigenschaft zur Ausführung dieses Initialisierungscodes, der diesen Inhalt tatsächlich beschafft, z. B. aus einer Datenbank.
Virtueller Proxy
ein nach außen gleiches Objekt mit gleicher Schnittstelle steht an Stelle des echten Objekts; bei der ersten Verwendung beschafft es die nötigen Daten und stellt sie bereit, bzw. wird ersetzt durch ein vollwertiges Objekt.
Geist (Ghost)
Spezialform eines Proxy, die einzelne, bekannte Eigenschaften des zu holenden Datenobjekts von Anfang an beinhaltet (z. B. ID-Nummer), so dass er eingeschränkt verwendet werden kann, ohne die echten Daten holen zu müssen.
Value holder
ein Hilfsobjekt, das die verzögerte Datenbeschaffung verwaltet und Daten bei Bedarf ausgibt, so dass es z. B. hinter den Wert-Eigenschaften eines Datenobjekts stehen und für dieses im Hintergrund die Werte bereitstellen kann.

Webdesign

[Bearbeiten | Quelltext bearbeiten]

Im Webdesign wird Lazy Loading verwendet, um sicherzustellen, dass die Elemente, die sich aktuell innerhalb des Viewports befinden, so schnell wie möglich geladen werden. Dies wird erreicht, indem Elemente, bei denen dies nicht der Fall ist, aufgeschoben werden. So sollten beispielsweise Bilder, die sich weiter unten auf einer Website befinden, erst dann geladen werden, wenn der Nutzer zu ihnen scrollt.[2] Ursprünglich mussten für Lazy Loading bestimmte JavaScript-Bilbiotheken verwendet werden.[3] Seit 2019 gibt es eine native Browser-Unterstützung für Lazy Loading von Bildern und iFrames in Google Chrome, bei der Elementen, die verzögert geladen werden sollen, lediglich das Attribut loading=lazy hinzugefügt werden muss.[4] Im Februar 2020 wurde dieses Feature in die HTML-Spezifikation der WHATWG aufgenommen.[5] Seit April 2020 bzw. März 2022 unterstützen auch Mozilla Firefox und Safari Lazy Loading mittels HTML-Attribut.[4]

Risiken

[Bearbeiten | Quelltext bearbeiten]

Lazy Loading ist oft ein Versuch, die Zahl der Datenzugriffe zu minimieren, jedoch meist zu Lasten der Effizienz bei mehreren Zugriffen. Werden sehr viele Werte oder Unterobjekte benötigt und per Lazy Load geholt, indem beispielsweise im Programm der Objektbaum durchlaufen und die Werte und Objekte so initialisiert werden, kommt es zu einer großen Zahl von Einzelabfragen. Viele Datenquellen, wie Datenbanken, sind dafür konzipiert, mit möglichst wenigen Anfragen viele Daten zu bearbeiten und komplette Ergebnisse zurück zu liefern. Werden viele Datensätze statt mit wenigen, beschreibenden Abfragen mit einer Vielzahl von Einzelabfragen ausgelesen, ist das für die Datenquellen und Netzwerkstruktur oft eine erhebliche Belastung. Im Datenbank-Kontext wird daher auch vom SELECT N+1-Problem gesprochen: mit einer (1) Abfrage werden zunächst N Objekte geladen; dann werden für jedes dieser Objekte, also N mal, einzelne Abfragen für abhängige Werte und Objekte abgerufen.

Siehe auch

[Bearbeiten | Quelltext bearbeiten]
  • Softwarearchitektur
  • Entwurfsmuster

Einzelnachweise

[Bearbeiten | Quelltext bearbeiten]
  1. ↑ Martin Fowler: Patterns of Enterprise Application Architecture. Addison-Wesley, Boston 2003, ISBN 0-321-12742-0, S. 200–214 (englisch). 
  2. ↑ Lazy loading. In: mdn web docs. Mozilla, abgerufen am 14. Juli 2022 (englisch). 
  3. ↑ Katie Hempenius: Use lazysizes to lazy-load images. In: web.dev. 5. November 2018, abgerufen am 14. Juli 2022 (englisch). 
  4. ↑ a b Lazy loading via attribute for images & iframes. In: caniuse.com. Abgerufen am 14. Juli 2022 (englisch). 
  5. ↑ Add <img loading=lazy> "lazy loading images". In: GitHub. 12. Februar 2020, abgerufen am 14. Juli 2022 (englisch). 
Entwurfsmuster
V – D
Erzeugungsmuster

Abstrakte Fabrik | Erbauer | Fabrikmethode | Prototyp | Singleton | Multiton | Objektpool

Strukturmuster

Adapter | Brücke | Decorator | Fassade | Fliegengewicht | Kompositum | Stellvertreter

Verhaltensmuster

Beobachter | Besucher | Interpreter | Iterator | Kommando | Memento | Schablonenmethode | Strategie | Vermittler | Zustand | Zuständigkeitskette | Interceptor | Nullobjekt | Protokollstapel

Muster für objekt-
relationale Abbildung

Datentransferobjekt | Table Data Gateway | Row Data Gateway | Active Record | Unit of Work | Identity Map | Lazy Loading | Identity Field | Dependent Mapping | Embedded Value | Serialized LOB | Inheritance Mapper | Metadata Mapping | Query Object | Command-Query-Responsibility-Segregation

Nachrichten-
übermittlungsmuster
Integrationsarten

File Transfer | Shared Database | Remote Procedure Invocation | Messaging

Nachrichtenaufbau

Message | Command Message | Document Message | Event Message | Request-Reply | Return Address | Correlation Identifier | Message Sequence | Message Expiration | Format Indicator

Endpunkte

Message Endpoint | Messaging Gateway | Messaging Mapper | Transactional Client | Polling Consumer | Event-driven Consumer | Competing Consumers | Message Dispatcher | Selective Consumer | Durable Subscriber | Idempotent Receiver | Service Activator

Kanäle

Message Channel | Point-to-Point Channel | Publisher-Subscriber Channel | Datatype Channel | Invalid Message Channel | Dead Letter Channel | Guaranteed Delivery | Channel Adapter | Messaging Bridge | Message Bus

Nachrichtenvermittlung

Pipes-and-Filters | Message Router | Content-based Router | Message Filter | Dynamic Router | Recipient List | Splitter | Aggregator | Resequencer | Composed Message Processor | Scatter-Gather | Routing Slip | Process Manager | Message Broker

Nachrichtenumwandlung

Message Translator | Envelope Wrapper | Content Enricher | Content Filter | Claim Check | Normalizer | Canonical Data Model

Systemmanagement

Control Bus | Detour | Wire Tap | Message History | Message Store | Smart Proxy | Test Message | Channel Purger

andere

Application Controller | Business Delegate | Data Access Object | Dependency Injection | Extension Interface | Fluent Interface | Inversion of Control (IoC) | Lock | Model View Controller (MVC) | Model View Presenter (MVP) | Model View Update (MVU) | Model View ViewModel (MVVM) | Page Controller | Registry | Remote Facade | Repository | Service Locator | Session State | Table Module | Template View | Threadpool | Transaction Script | Transform View | Two-Step View | Value Object

Siehe auch:  Analysemuster | Architekturmuster | Integrationsmuster | SOA-Muster
Abgerufen von „https://de.teknopedia.teknokrat.ac.id/w/index.php?title=Lazy_Loading&oldid=253527673“
Kategorie:
  • Software (Thema)

  • indonesia
  • Polski
  • العربية
  • Deutsch
  • English
  • Español
  • Français
  • Italiano
  • مصرى
  • Nederlands
  • 日本語
  • Português
  • Sinugboanong Binisaya
  • Svenska
  • Українська
  • Tiếng Việt
  • Winaray
  • 中文
  • Русский
Sunting pranala
Pusat Layanan

UNIVERSITAS TEKNOKRAT INDONESIA | ASEAN's Best Private University
Jl. ZA. Pagar Alam No.9 -11, Labuhan Ratu, Kec. Kedaton, Kota Bandar Lampung, Lampung 35132
Phone: (0721) 702022
Email: pmb@teknokrat.ac.id