Ładne rozszerzenia do Chrome, które nie zwalniają przeglądarki
Ozdobne rozszerzenia do przeglądarek mają swoją opinię i w większości zasłużoną: ciężkie, gadatliwe, instalowane z listą uprawnień, której nikt nie przeczytał. A szkoda, bo ta kategoria naprawdę cieszy, a każdy z tych problemów da się uniknąć.
Trzy rzeczy warte sprawdzenia
- Lista uprawnień. Chrome pokazuje ją przed instalacją. Storage to plik z ustawieniami. Tabs, cookies, history i webRequest to te, które pozwalają rozszerzeniu patrzeć, co przeglądasz.
- Czy rusza układ twojej strony. Rozszerzenie, które wstawia elementy w przepływ dokumentu albo mierzy ich pozycje przy każdym zdarzeniu przewijania, potrafi zaciąć gładką stronę — bez względu na to, jak mało rysuje.
- Gdzie wysyła zapytania. Ozdoba z ruchliwą kartą sieci wykonuje drugie zadanie, o którym ci nie powiedziano.
Dlaczego układ boli najbardziej
Odczytanie właściwości układu — wysokości elementu, jego pozycji na ekranie — zmusza przeglądarkę do dokończenia wszystkich zaległych obliczeń układu, zanim zdoła odpowiedzieć. Zrób to w obsłudze przewijania i poprosiłeś przeglądarkę, by sześćdziesiąt razy na sekundę stawała i mierzyła, na stronie, którą rysowała do połowy.
To mechanizm stojący za większością skarg „to rozszerzenie tnie przewijanie”, i jest niewidoczny, dopóki ktoś go nie zbada profilerem. Rozwiązanie jest nieefektowne: nigdy nie czytaj układu w trakcie przewijania, zapisuj tylko transformacje i pozwól kompozytorowi zająć się ruchem.
Jak to wygląda tutaj
scrolldog to mały pikselowy zwierzak, który biegnie po krawędzi każdej strony z prędkością twojego przewijania. Jest też rozpisanym przykładem powyższych kontroli, bo musiał je przejść, żeby dało się z nim żyć:
- Dwa uprawnienia: storage i unlimitedStorage. Żadnych tabs, cookies, history ani webRequest.
- Jedno uprawnienie do hosta — api.scroll.dog — do sprawdzenia licencji, nigdy do ruszania strony, na której jesteś.
- Zwierzak żyje w stałym torze o zerowym rozmiarze i zapisuje wyłącznie transformację CSS, więc układ twojej strony nigdy się nie zmienia.
- Przewijanie jest słuchane pasywnie i sprowadzone do jednego zapisu na klatkę animacji.
- Jeden przełącznik usuwa go natychmiast z każdej otwartej karty.
Nic z tego nie jest przechwałką — to minimum. Rzecz, której całym zadaniem jest ładnie wyglądać, nie ma prawa niczego zwalniać.
Zobacz psa