Söpöjä Chrome-laajennuksia, jotka eivät hidasta selaintasi
Koristeellisilla selainlaajennuksilla on maine, ja se on suurelta osin ansaittu: raskaita, puheliaita, ja asennettu lupalistalla, jota kukaan ei lukenut. Mikä on sääli, sillä kategoria on aidosti hauska ja jokainen ongelma on vältettävissä.
Kolme asiaa, jotka kannattaa tarkistaa
- Lupalista. Chrome näyttää sen ennen asennusta. Storage on asetustiedosto. Tabs, cookies, history ja webRequest ovat niitä, jotka päästävät laajennuksen seuraamaan selaustasi.
- Koskeeko se sivusi asetteluun. Laajennus, joka lisää elementtejä dokumenttivirtaan tai mittaa elementtien sijaintia jokaisella vieritystapahtumalla, voi saada muuten sulavan sivun nykimään, olipa se piirtämässä kuinka vähän tahansa.
- Minne se lähettää pyyntöjä. Koriste, jolla on kiireinen verkkovälilehti, tekee toista työtä, josta sinulle ei kerrottu.
Miksi asettelu on se, joka puree
Asetteluominaisuuden lukeminen — elementin korkeus, sen sijainti ruudulla — pakottaa selaimen viimeistelemään kaiken odottavan asettelutyön ennen kuin se voi vastata. Tee tämä vierityskäsittelijän sisällä, ja olet pyytänyt selainta pysähtymään ja mittaamaan kuusikymmentä kertaa sekunnissa, sivulla joka oli puolivälissä piirtämistään.
Se on mekanismi useimpien ”tämä laajennus tekee vierittämisestä nykivää” -valitusten takana, ja se on näkymätön kunnes joku profiloi sen. Ratkaisu ei ole näyttävä: älä koskaan lue asettelua vierityksen aikana, kirjoita vain transformeja, ja anna kompositorin hoitaa liike.
Miltä se näyttää täällä
scrolldog on pieni pikselilemmikki, joka juoksee jokaisen sivun reunaa pitkin vieritysnopeudellasi. Se on myös läpikäyty esimerkki yllä olevista tarkistuksista, koska sen oli läpäistävä ne ollakseen siedettävä pitää lähellä:
- Kaksi lupaa: storage ja unlimitedStorage. Ei tabs, ei cookies, ei history, ei webRequest.
- Yksi isäntälupa — api.scroll.dog — käytetään lisenssin tarkistamiseen, ei koskaan sivun koskettamiseen jolla olet.
- Lemmikki elää kiinteässä, nollakokoisessa radassa ja kirjoittaa vain koskaan CSS-transformin, joten sivusi oma asettelu ei koskaan muutu.
- Vieritystä kuunnellaan passiivisesti, ja se tiivistetään yhteen kirjoitukseen per animaatioruutu.
- Yksi kytkin poistaa sen jokaisesta avoimesta välilehdestä välittömästi.
Mikään tästä ei ole kehuskelua — se on minimi. Asialla, jonka koko tehtävä on olla miellyttävä katsella, ei ole mitään syytä tehdä mistään muusta hitaampaa.
Katso koira