Александр Инкин @Waterplea
Google Developer Expert | Angular
Информация
- В рейтинге
- Не участвует
- Откуда
- Нижний Новгород, Нижегородская обл., Россия
- Работает в
- Дата рождения
- Зарегистрирован
- Активность
Специализация
Frontend Developer, Web Developer
Lead
От 1 000 000 ₽
Angular
JavaScript
TypeScript
Web development
CSS
HTML
LESS
Можно переписать строчку, которая берёт путь из DI, чтобы она использовала спрайт и доставала символ. В приложении, где разных иконок не пара сотен загружать их все разом будет и правда не слишком накладно.
Для оптимизации ещё могу kraken.io посоветовать, но вы, наверное, уже про него знаете :-)
Так что остальное — input latency, обусловленное реализацией Web MIDI API в Chromium. А сколько там его я затрудняюсь померить :)
github.com/ng-web-apis/intersection-observer
stackblitz.com/edit/angular-scrollbar-component-directive?file=src/app/scrollbar/draggable.directive.ts
Спасибо за коммент :) Добавлю в статью.
github.com/ng-web-apis/intersection-observer
Отлично подойдёт для подобного кейса. Интересно ещё, насколько выгоднее иметь 700 обзёрверов против 700 ивент листенеров. Можно было бы эту тему оптимизировать, ведь параметры одинаковые — можно в одном обзёрвере отслеживать все 700 элементов и эмитить наружу какие элементы сейчас видимы. Ну и сделать из этого сервис, доступный всем элементам.
Конфигурация через DI хороша там, где оно не меняется. Через параметры вызова там, где меняется часто. Можно и совмещать эти два подхода. Что-то типа persistent config с возможностью переопределить в отдельных случаях. Пример такого подхода можно увидеть у нас в ng-dompurify — либы для использования DOMPurify в качестве санитайзера Angular:
https://habr.com/ru/company/tinkoff/blog/459396/
В ТС, кончено, всё точно так же. Код этот написан так, просто чтобы кратко показать, что оно работает на коллбэках. Автору статьи, уверен, и в голову не пришло, что кто-то станет читать статью про Ангуляр и обзёрваблы не зная, как работает this в таких ситуациях. Это всё равно, как докопаться, что там в коде функция doSomething в итоге глобальная, а значит либо оно совершенно бесполезное, либо адовый сайдэффект.
Это пример того, как работает НАТИВНЫЙ API.
У меня, тогда, встречный вопрос:
Можете привести пример штук, противоречащих политике фреймворка? Я бы сказал, чо разработчики Ангуляр подумали за нас только в очень глобальных вопросах, скажем, в роутинге, в остальных же случаях они оставили нам полную свободу действий и я не могу сходу назвать ситуацию, которую вы озвучили.