Extensii drăguțe pentru Chrome care nu-ți încetinesc browserul
Extensiile decorative de browser au o reputație, și în mare parte o merită: grele, gălăgioase și instalate cu o listă de permisiuni pe care nimeni nu a citit-o. Ceea ce este păcat, pentru că această categorie este cu adevărat amuzantă și fiecare problemă poate fi evitată.
Trei lucruri care merită verificate
- Lista de permisiuni. Chrome o afișează înainte de instalare. Storage este un fișier de preferințe. Tabs, cookies, history și webRequest sunt cele care lasă o extensie să urmărească ce navighezi.
- Dacă atinge aspectul paginii tale. O extensie care inserează elemente în fluxul documentului sau măsoară poziția elementelor la fiecare eveniment de derulare poate face ca o pagină altfel fluidă să se blocheze, indiferent cât de puțin desenează.
- Unde trimite cereri. Un decor cu o filă de rețea agitată face o a doua muncă despre care nu ți s-a spus.
De ce aspectul este cel care mușcă
Citirea unei proprietăți de aspect — înălțimea unui element, poziția lui pe ecran — obligă browserul să termine orice lucrare de aspect în așteptare înainte să poată răspunde. Fă asta într-un handler de derulare și ai cerut browserului să se oprească și să măsoare de șaizeci de ori pe secundă, pe o pagină pe care era pe la jumătatea desenării.
Acesta este mecanismul din spatele majorității plângerilor de tipul „această extensie face derularea sacadată”, și este invizibil până când cineva îl profilează. Soluția nu este spectaculoasă: nu citi niciodată aspectul în timpul derulării, scrie doar transformări și lasă compozitorul să facă mișcarea.
Cum arată aici
scrolldog este un animăluț mic de pixeli care aleargă de-a lungul marginii fiecărei pagini cu viteza ta de derulare. Este totodată un exemplu detaliat al verificărilor de mai sus, pentru că a trebuit să treacă de ele ca să fie suportabil să trăiești cu el:
- Două permisiuni: storage și unlimitedStorage. Fără tabs, fără cookies, fără history, fără webRequest.
- O singură permisiune de gazdă — api.scroll.dog — folosită pentru a verifica o licență, niciodată pentru a atinge pagina pe care ești.
- Animăluțul trăiește pe o pistă fixă, cu dimensiune zero, și scrie doar vreodată o transformare CSS, așa că aspectul propriu al paginii tale nu se schimbă niciodată.
- Derularea este ascultată pasiv și comprimată într-o singură scriere pe cadru de animație.
- Un comutator îl elimină instant de pe toate filele deschise.
Nimic din toate astea nu e o laudă — este minimul. Un lucru a cărui întreagă treabă este să arate plăcut nu are niciun motiv să facă nimic mai lent.
Vezi câinele