Wat ik op dit soort auto load pages scripts tegen heb is dat het zo lomp veel geheugen + CPU tijd kost. Ook vraag ik me af of dit wel zo makkelijk werkt op mobiele telefoons, die sowieso wat minder resources + knoppen e.d. tot hun beschikking hebben.
Ter illustratie:
Even een flinke lijst afbeeldingen gescrolld. Gevolg: DOM wordt lomp groot, browser heeft meer geheugen, en vooral tijdens interactie met de pagina schiet het CPU gebruik omhoog.
Test systeem: Windows 7, 4 Gb RAM, Intel Quad Core, 256 Gb SSD
Met Bing en IE8: 167 mB geheugen gebruik, en pieken van ~60% CPU gebruik
Chrome en FF doen het een stuk beter, nog steeds veel geheugen gebruik maar minder lags van de CPU, wat resulteert in een veel betere user experience.
Je ziet dit soort scripts in heel veel web apps tegenwoordig, Twitter, Bing, Facebook en nu ook Google. Op zich werkt het voor kleine aantallen elementen prima, maar zo gauw het wat veel begint te worden heb ik veel liever de klassieke pagination scripts.
Men zou iets moeten bedenken om het aantal DOM elementen beperkt te houden, maar de gebruiksvriendelijkheid van de scrollbeweging te behouden.
Je zou bij het scrollen de nieuwe content kunnen laden + de oude van het DOM verwijderen.
Pro's:
+ Minder DOM elementen
+ Dus minder geheugen + CPU gebruik
+ Dus minder schokken tijdens het scrollen
Con's:
- Extra handeling per scroll beweging (oude content weghalen)
- Meer handelingen nodig bij het omhoogscrollen (al wordt dit deels weggevangen door een browser die goed en efficiënt cached)
Er zijn meerdere van dit soort mogelijkheden mogelijk. Bijvoorbeeld:
- Een combi van klassieke pagination en scroll-load-content (dus nieuwe content laden bij scrollen, maar tot een max en daarna pagination enz.)
- Alleen het minimale laden bij het scrollen (zodat het DOM beperkt blijft) en rand data (resolutie image e.d.) laden zodra er serieus naar een afbeelding gekeken wordt (want laten we eerlijk wezen 9/10 afbeeldingen worden slechts vluchtig bekeken), grote nadeel hiervan: Men moet weer een AJAX request afwachten bij het kijken naar afbeeldingen
- Klassieke pagination zonder algehele page refresh (AJAX request)
Een weg tussen gebruiksvriendelijkheid en het gebruik van resources (welke overigens wel gekoppeld zijn: meer resources -> meestal slechtere gebruikerservaring (computer reageert traag) zal gevonden moeten worden. Mijns inziens schiet de implementatie van dit soort scripts tegenwoordig hierin nog vaak tekort. We zullen zien wat de toekomst brengen gaat.
[Reactie gewijzigd door bindsa op 25 juli 2024 19:37]