RAILS
Veebilehe performance'i mõõtmiseks ei piisa enam ainult page loadi vaatamisest. See on eriti teemaks Single Page Applicationitel, kus page loadi tehakse ainult korra aga kasutaja kasutab rakendust edasi X aega. RAILsi idee on fokuseerida kasutajale, s.t. kasutaja actionitele rakenduses.
Idle
Idle on kasutaja mittetegevus (loeb teksti vms). Idle on hea aeg, millal saab salaja tööd teha. Kasutaja tuleb idle olekust välja 50ms'ga, ehk siis sinu taustal salaja tegutsev töö ei tohi võtta kauem kui 50ms.
Chrome'is on dev channelis requestIdleCalla
function myNonEssentialWork (deadline) { // kutsutakse käima kui kasutaja on idle olekus
while (deadline.timeRemaining() > 0) // kui meil on aega veel, siis teeme tööd
doWorkIfNeeded();
}
requestIdleCallback(myNonEssentialWork);
Animation
Animationid peavad võtma 16ms (60fps / 1minutile). Kasutajad panevad tähele kui FPS muutub, nii et pigem on stabiilne 17ms kui vahepeal 11ms ja 20ms.
Samuti tuleb arvestada, et browserid teevad ka tööd, seega reaalsuses saavad animatsioonid jooksta ainult ~10ms.
Kui kasutaja näiteks scrollib või avab menüüd siis sul on 10ms aega et näidata talle uut sisu.
Response
Iga kasutaja tegevusele peab toimuma mingisugune responce. A.la animatsioon / loader vms. Et kasutaja saaks aru, et tema tegevus registreeriti.
Idee on et response peaks toimuma 0.1s jooksul. See on aeg, mis kasutaja peab koheseks.
Load
Load on reaalne andmete laadimine kuskilt. Tohib võtta maks 1s. Kui load võtab 1s aega siis kasutaja on veel mõttes ja tegutseb edasi. Üle 1s ja kasutaja pole enam fokuseeritud ja töö võib pooleli jääda.
Kui tõesti on aeglane api ots, siis tuleks kindlasti kuvada loaderit et kasutaja saaks aru et tema asjaga tegeletakse.
ServiceWorker
Korralikult promovad serviceworkerit. Põhimõtteliselt network proxy. Võimaldab sinu HTTP päringuid cachida. Töötab urli skoobis, s.t. kui script on domeeni ruudus siis saab ligi ta kõikidele sinu domeenis olevatele HTTP päringutele. Kui ta on /example folderis, siis ta saab ligi ainult /example algusega päringutele.
Ei oska öelda, kuidas ta CDNiga peaks töötama. Mingi hetk tuleb võibolla ka BackgroundSync mis võimaldab tööd teha taustal (nii et su leht ei ole avatudki)
https://developers.google.com/web/tools/profile-performance/evaluate-performance/rail
RAILS
By Peeter Tomberg
RAILS
- 281