Líné načítání - Lazy loading
Líné načítání (také známý jako asynchronní načítání) je návrhový vzor běžně se používá v počítačovém programování a většinou ve webovém designu a vývoji k odložení inicializace objektu až do okamžiku, kdy je potřeba. Při správném a vhodném použití může přispět k efektivitě fungování programu. Díky tomu je ideální v případech použití, kdy je přístup k síťovému obsahu a inicializační časy mají být udržovány na minimu, například v případě webové stránky. Opakem líného načítání je dychtivé načítání. Líné načítání se v obrázcích na webu používá hlavně k tomu, aby se zobrazovaly pouze v případě, že jsou potřebné k rychlejšímu načítání webových stránek.
Implementace
Existují čtyři běžné způsoby implementace návrhového vzoru líné zátěže: líná inicializace; A virtuální proxy; A ducha držitel hodnoty.[1] Každý z nich má své vlastní výhody a nevýhody.
Líná inicializace
S línou inicializací je objekt, který má být líně načten, původně nastaven na null a každý požadavek na objekt kontroluje null a vytvoří jej „za běhu“, než jej nejprve vrátí, jako v tomto příkladu C #:
soukromé int myWidgetID;soukromé Widget myWidget = nula;veřejnost Widget MyWidget{ dostat { -li (myWidget == nula) { myWidget = Widget.Zatížení(myWidgetID); } vrátit se myWidget; }}
Nebo s operátor sloučení nuly '??'
soukromé int myWidgetID;soukromé Widget myWidget = nula;veřejnost Widget MyWidget{ dostat { vrátit se myWidget = myWidget ?? Widget.Zatížení(myWidgetID); }}
Tato metoda je nejjednodušší implementovat, i když pokud null je legitimní návratová hodnota, může být nutné použít zástupný objekt k signalizaci, že nebyl inicializován. Pokud se tato metoda používá v a vícevláknová aplikace, je nutné se vyhnout synchronizaci podmínky závodu.
Virtuální proxy
Virtuální proxy je objekt se stejným rozhraním jako skutečný objekt. Poprvé, když se jedna z jejích metod nazývá, načte skutečný objekt a poté deleguje.
Duch
„Duch“ je objekt, který má být načten v částečném stavu. Může obsahovat pouze identifikátor objektu, ale načte svá vlastní data při prvním přístupu k jedné z jeho vlastností. Zvažte například, že se uživatel chystá požádat o obsah prostřednictvím online formuláře. V době vytvoření víme jen to, že k obsahu bude přistupováno, ale jaká akce nebo obsah není znám.
Příklad PHP:
$ userData = pole ( „UID“ = > uniqid(), „requestTime“ => mikrotime(skutečný), "datový typ" => "", "žádost" => "");-li (je nastaven($ _POST['data']) && $ userData) { // ...}
Držitel hodnoty
A držitel hodnoty je obecný objekt, který zpracovává líné chování při načítání a zobrazuje se namísto datových polí objektu:
soukromé ValueHolder<Widget> valueHolder;veřejnost Widget MyWidget => valueHolder.GetValue();
Webová implementace
Umožnění prohlížeče zobrazovat a zobrazovat stránky v co nejkratším čase je v dnešním moderním světě kritickou potřebou. Nejjednodušší způsob implementace Lazy Loading je následující
<img src="image.jpg" alt="..." loading="lazy"> <iframe src="video-player.html" title="..." loading="lazy"></iframe>
The načítání podpora atributu dvě hodnoty, líný a dychtivý. Eager načte obrázek s prioritou, zatímco líný jej načte pouze v případě, že je to požadováno nebo je obrázek ve výřezu.
Viz také
Reference
- ^ Martin Fowler (2003). Vzory podnikové aplikační architektury. Addison-Wesley. 200–214. ISBN 0-321-12742-0.
{{Líné načítání Mozilla Web Dev }}
![]() | Tento programování související článek je a pahýl. Wikipedii můžete pomoci pomocí rozšiřovat to. |