Сладки разширения за Chrome, които не забавят браузъра ви
Декоративните разширения за браузър имат репутация и тя до голяма степен е заслужена: тежки, бъбриви и инсталирани със списък с разрешения, който никой не е прочел. Жалко, защото категорията наистина е забавна и всеки от проблемите е избежим.
Три неща, които си струва да проверите
- Списъкът с разрешения. Chrome ви го показва преди инсталация. Storage е просто файл с настройки. Tabs, cookies, history и webRequest пък са разрешенията, които позволяват на разширението да следи какво разглеждате.
- Дали докосва оформлението на страницата ви. Разширение, което вмъква елементи в потока на документа или измерва позициите на елементите при всяко събитие на скролване, може да накара гладка страница да заеква, колкото и малко всъщност да рисува.
- Къде изпраща заявки. Декорация с оживен раздел за мрежа върши втора работа, за която не сте били уведомени.
Защо точно оформлението хапе
Четенето на свойство от оформлението — височината на елемент, позицията му на екрана — принуждава браузъра първо да завърши цялата чакаща работа по оформлението, преди да може да отговори. Направете това вътре в обработчик на скролване и сте помолили браузъра да спира и да мери шейсет пъти в секунда, докато е насред изчертаването на страницата.
Това е механизмът зад повечето оплаквания от вида „това разширение прави скролването накъсано“, и е невидим, докато някой не профилира страницата. Решението е скучно: никога не четете оформление по време на скролване, пишете само transform и оставете компоситора да върши движението.
Как изглежда това тук
scrolldog е малко пикселно домашно кученце, което тича по края на всяка страница с вашата скорост на скролване. Той е и практически пример за проверките по-горе, защото трябваше да ги мине, за да е поносим за живеене с него:
- Само две разрешения: storage и unlimitedStorage. Без tabs, без cookies, без history, без webRequest.
- Едно разрешение за хост — api.scroll.dog — използвано само за проверка на лиценз, никога за достъп до страницата, на която сте.
- Домашният любимец живее във фиксирана лента с нулев размер и винаги записва само CSS свойството transform, така че оформлението на страницата ви никога не се променя.
- Скролването се следи пасивно и се свежда до един запис на кадър от анимацията.
- Един превключвател го премахва от всички отворени раздели мигновено.
Нищо от това не е хвалба — то е минимумът. Нещо, чиято единствена работа е да изглежда приятно, няма право да прави каквото и да е по-бавно.
Вижте кучето