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

  • 265