Estensioni Chrome carine che non rallentano il browser
Le estensioni decorative per il browser hanno una fama, e in gran parte è meritata: pesanti, chiacchierone, installate con una lista di permessi che nessuno ha letto. Che è un peccato, perché la categoria è davvero divertente e ognuno di quei problemi si può evitare.
Tre cose che vale la pena controllare
- La lista dei permessi. Chrome la mostra prima dell'installazione. Storage è un file di preferenze. Tabs, cookies, history e webRequest sono quelli che permettono a un'estensione di guardare cosa navighi.
- Se tocca l'impaginazione della tua pagina. Un'estensione che inserisce elementi nel flusso del documento, o che misura le posizioni a ogni evento di scorrimento, può far scattare una pagina fluida per poco che disegni.
- Dove manda le richieste. Una decorazione con la scheda di rete affollata sta facendo un secondo lavoro di cui non ti hanno parlato.
Perché è l'impaginazione a morderti
Leggere una proprietà di impaginazione — l'altezza di un elemento, la sua posizione sullo schermo — obbliga il browser a finire ogni calcolo di impaginazione in sospeso prima di poter rispondere. Fallo dentro un gestore di scorrimento e gli hai chiesto di fermarsi a misurare sessanta volte al secondo, su una pagina che stava disegnando a metà.
È il meccanismo dietro la maggior parte delle lamentele su «questa estensione rende lo scorrimento a scatti», ed è invisibile finché qualcuno non lo profila. La soluzione non ha nulla di affascinante: non leggere mai l'impaginazione durante lo scorrimento, scrivere solo trasformazioni e lasciare che sia il compositor a muovere.
Come si vede qui
scrolldog è un piccolo animaletto a pixel che corre lungo il bordo di ogni pagina alla tua velocità di scorrimento. È anche un esempio svolto dei controlli di sopra, perché doveva passarli per essere sopportabile da tenere:
- Due permessi: storage e unlimitedStorage. Niente tabs, niente cookies, niente history, niente webRequest.
- Un permesso di host — api.scroll.dog — usato per controllare una licenza, mai per toccare la pagina su cui sei.
- L'animaletto vive in un binario fisso di dimensione zero e scrive soltanto una trasformazione CSS, quindi l'impaginazione della tua pagina non cambia mai.
- Lo scorrimento è ascoltato in modo passivo e ridotto a una scrittura per fotogramma di animazione.
- Un interruttore lo toglie da ogni scheda aperta all'istante.
Niente di tutto questo è un vanto — è il minimo. Una cosa il cui unico mestiere è essere bella da guardare non ha motivo di rendere nulla più lento.
Guarda il cane