-
Notifications
You must be signed in to change notification settings - Fork 40
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
feat(new-ui): add image prefetch in new ui #628
feat(new-ui): add image prefetch in new ui #628
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Из важных замечаний у меня 2 — вместо коммента в старом коде просто заюзать новую функцию + переименовать preload в cleanup, чтобы было правдиво
В остальном считаю получилось классно, потестил с разным инет, все прелоадится, крутяк!
lib/static/new-ui/features/visual-checks/components/VisualChecksPage/index.tsx
Outdated
Show resolved
Hide resolved
test/unit/lib/static/new-ui/features/visual-checks/components/VisualChecksPage.jsx
Show resolved
Hide resolved
}, [currentNamedImageIndex]); | ||
|
||
useEffect(() => () => { | ||
Object.values(preloaded.current).forEach(preload => preload?.()); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Еще на всякий случай хочу спросить, мы получается для прелоада добавляем прям элементы в head и только на unmount их удаляем. Если туда напихать скажем так 5000 скриншотов, ничего плохого не будет, т.е. браузер будет понимать, что это лишь rel=preload и не будет реально их все держать в памяти, верно?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Я думал над этим, и в частности почитал https://www.w3.org/TR/2022/DISC-preload-20220331/ и дальше погуглил еще
Кратко, что накопал - результаты прелоада будут жить в диск кэше, так что на производительность это особо не повлияет. Кэш имеет лимиты по размеру и периодически очищается сам.
В теории, мы можем получить какие-то проблемы с производительностью (как минимум, потому что будет 5000 тэгов в хэд сайта), но это не однозначно и не доказано.
Можно добавить какие-то лимиты, но мне кажется лучше не заниматься преждевременной оптимизацией
Еще там линтер ругается на код тестов. Предлагаю или починить warning'и или заигнорить их. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
По коду мне ок. Но нужно починить юниты
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
По коду всё ок. Если всё работает на последней итерации, как и ранее, думаю пора вливать =)
Отсмотрел еще раз, по всей видимости ничего не поменялось и не сломалось. Давай зальем) |
Added image prefetching in new ui
I hereby agree to the terms of the CLA available at: https://yandex.ru/legal/cla/?lang=ru.