Tingus krovimas, nors ir naudingas norint pagerinti pradinį apkrovos laiką ir sumažinti pralaidumo naudojimą, gali sukelti našumo problemas keliais scenarijais:
** 1. Per didelis ar per didelis tingus krovimas
Kai per daug išteklių (pvz., Vaizdų ar komponentų) yra tingūs, beatodairiškai pakraunami, tai gali sukelti vėlavimą įkelti kritinį turinį, neigiamai paveikti vartotojo patirtį ir metriką, pavyzdžiui, didžiausius turinius dažus (LCP). Pavyzdžiui, „WordPress“ testas parodė, kad tingus apkrovos išjungimas archyvų puslapiuose žymiai pagerino LCP, tai rodo, kad per didelis tingus apkrova gali sulėtinti suvokiamą apkrovos greitį [1]. Dėl per daug agresyvaus tinginio apkrovos padidėja latentinis latentinis, nes turinys yra susijęs su paklausa, o tai gali nugalėti savo tikslą [6].
** 2. Tingus pakrovimas ir hidratacija „JavaScript“ rėmuose
Šiuolaikinės „JavaScript“ programos tingus apkrova gali prieštarauti hidratacijos procesui, kai sistema turi padaryti komponentus interaktyvius, pritvirtinant įvykių klausytojus ir atkuriant būseną. Kadangi hidratacijai reikia nekantriai vaikščioti komponento medžiu, tingūs pakrovimo komponentai, kurie yra pradinio atvejų medžio dalis, dažnai sukelia daugybę HTTP užklausų ir nereikalingų darbų, neigiamai panaikinant tinginio pakrovimo pranašumus. Tai daro tingų krovimą veiksmingesnį tik tiems komponentams, kurie iš pradžių nepateikiami, pavyzdžiui, pakraunami į maršruto pakeitimus. Tvarkyti šį sudėtingumą yra sunku ir dažnai reikalinga pasirinktinė automatizavimas [2].
** 3. Latentinis ir vartotojo sąveikos vėlavimas
Tingus įkeliamas deforsavimas, kol reikia išteklių, o tai įveda latenciją, kai vartotojas iš tikrųjų prašo turinio (pvz., Slinkdamas į vaizdą arba spustelėjus mygtuką). Šis vėlavimas gali pabloginti realaus laiko reagavimą, ypač lėtuose ar nepatikimuose tinkluose. Tai taip pat gali sukelti išdėstymo poslinkius arba matomus pakrovimo vietas, kurios kenkia vartotojo patirtimi [6] [4].
** 4. Sudėtingumas ir priežiūra pridėtinės išlaidos
Norint įgyvendinti tingų pakrovimą, reikia atidžiai planuoti, kuriuos išteklius nekantriai ar tingiai pakrauti, padidinant kodo sudėtingumą ir priežiūros pastangas. Kūrėjai turi numatyti vartotojo elgesį, kad optimizuotų pakrovimą, o tai yra sudėtinga didelėms ar dinaminėms programoms. Netinkant tinkamo tvarkymo, tingus pakrovimas gali sukelti nereikalingų tinklo užklausų arba nesugebėti iš anksto įkrauti išteklių, kurių netrukus prireiks [2] [6].
** 5. Netinkami naudojimo atvejai
Tingus įkėlimas nėra tinkamas kritiniams ištekliams, kurie yra būtini pradiniam pateikimui ar vartotojo sąveikai. Pvz., Vaizdai ar scenarijai virš raukšlės turėtų būti nekantriai pakrauti, kad būtų išvengta pirmųjų prasmingų dažų. Tingus krovimas yra geriau skirtas vaizdams už ekrano, žemiau esančio turinio arba komponentų, įkeltų pagal pareikalavimą (pvz., Po naršymo ar vartotojo veiksmų) [4] [5].
Apibendrinant galima pasakyti, kad tingus įkėlimas sukelia našumo problemas, kai jis yra per daug naudojamas, taikomas kritiniams ištekliams, konfliktams su hidratacija „JavaScript“ sistemose arba įvedamas latentinis latentinis, kuris kenkia vartotojo patirtimi. Norint išvengti šių spąstų, būtina tinkamai subalansuoti tingų ir nekantraujantį krovimą, atsižvelgiant į išteklių kritiškumą ir vartotojo elgesį.
Citatos:
[1] https://web.dev/articles/lcp lazy-loading
[2] https://www.builder.io/blog/the-challenges-of-lazy-loading-in-javascript
[3] https://stackoverflow.com/questions/878069/to lazy-load-or-on-in-efort-to-improve-Pormance
[4] https://hackernoon.com/dont-be-lazy-3-problems-with-lazy-loading-and-wen-suse-eager-loading-qq1d34cl
[5] https://developer.mozilla.org/en-us/docs/web/performance/guides/Lazy_Loading
[6] https://dev.to/aws-builders/lazy-loading-vs-write-through-a-guide-to-performance-optimization-28Ka
[7] https://www.reddit.com/r/web_design/comments/ootcl1/the_performance_effects_of_too_much_lazyLoading/
[8] https://developer.mozilla.org/en-us/docs/web/performance/Lazy_Loading
[9] https://teamupdraft.com/blog/how-does Lazy-loading-improve-user-experience/