setAttribute() в JavaScript и когда его применять?Метод
setAttribute() устанавливает или обновляет значение атрибута у HTML-элемента. Это удобно, когда нужно динамически менять параметры элементов — например, src, href, id или data-*.<img id="avatar" src="default.png" alt="Avatar">
<script>
const img = document.getElementById("avatar");
img.setAttribute("src", "user.png");
img.setAttribute("alt", "User photo");
</script>
setAttribute() удобно использовать при работе с динамическим контентом, темизацией, lazy-loading изображений и управлением data-* атрибутами. Он даёт гибкий способ изменять DOM-структуру без прямого доступа к свойствам
Please open Telegram to view this post
VIEW IN TELEGRAM
❤1
В React есть огромный список (тысячи строк), но пользователю видны только ~20 в вьюпорте. Нужно снизить нагрузку на DOM и рендер.
Anonymous Quiz
16%
Мемоизировать каждый элемент через React.memo
5%
Класть список в Context
70%
Виртуализировать список (рендерить только видимую часть)
8%
Вынести состояние в Redux
This media is not supported in your browser
VIEW IN TELEGRAM
Сделано на SCSS
Please open Telegram to view this post
VIEW IN TELEGRAM
Нужно отложить тяжёлый рендер вне экрана, но чтобы место под блок было зарезервировано и не было скачка макета (CLS). Что используешь?
Anonymous Quiz
39%
content-visibility: auto вместе с фиксированной aspect-ratio/высотой контейнера
30%
visibility: hidden
9%
display: none до скролла
21%
opacity: 0
Полистав различные ресурсы в Интернете и просмотрев множество видео по данной теме, я решил составить наиболее полную картину по данному, не побоюсь этого слова, революционному API, чтобы вы уже сегодня могли начать использовать его в своём проекте!
Please open Telegram to view this post
VIEW IN TELEGRAM
This media is not supported in your browser
VIEW IN TELEGRAM
Сделано на SCSS и JS
Please open Telegram to view this post
VIEW IN TELEGRAM
❤1
Нужно прогреть DNS+TLS к стороннему домену до запроса. Что поставить в <head>?
Anonymous Quiz
30%
dns-prefetch
27%
prefetch
28%
preconnect
15%
preload
Сегодня я решил показать вам несколько проверенных трюков. Выбрал самые лёгкие в освоении, чтобы вы смогли внедрить их уже сегодня, не отвлекаясь на сложности.
Please open Telegram to view this post
VIEW IN TELEGRAM
❤2
Как надёжно определить, что страница восстановлена из bfcache (а не заново загружена)?
Anonymous Quiz
52%
pageshow с event.persisted === true
2%
load
30%
DOMContentLoaded
17%
visibilitychange при document.hidden === false
This media is not supported in your browser
VIEW IN TELEGRAM
Сделано на SCSS
Please open Telegram to view this post
VIEW IN TELEGRAM
❤2
append() в JavaScript и когда его применять?Метод
append() добавляет один или несколько элементов или текст в конец указанного DOM-элемента. Это современный и удобный способ динамически изменять содержимое страницы.<ul id="list"></ul>
<script>
const list = document.getElementById("list");
const newItem = document.createElement("li");
newItem.textContent = "Новый элемент";
list.append(newItem);
</script>
append() удобно использовать при генерации списков, карточек, уведомлений и других динамических компонентов. В отличие от appendChild(), он может добавлять сразу несколько узлов или строки текста, что делает его более гибким
Please open Telegram to view this post
VIEW IN TELEGRAM
Нужно подсветить карточку, когда её внутренняя кнопка в фокусе, без JS. Что использовать?
Anonymous Quiz
81%
:has(:focus)
8%
:parent
7%
:matches()
4%
Никак — только JS
This media is not supported in your browser
VIEW IN TELEGRAM
Сделано на SCSS и JavaScript
Please open Telegram to view this post
VIEW IN TELEGRAM
❤1
Из браузера делаете CORS fetch к API; нужно, чтобы куки не отправлялись. Что выбрать?
Anonymous Quiz
14%
credentials: "omit"
14%
SameSite=Strict
38%
Referrer-Policy: no-referrer
35%
Cache-Control: no-store
На основе наблюдений я выделил 5 самых проблемных случая, когда JavaScript блокирует загрузку сайта. В статье вы узнаете, как с ними бороться.
Please open Telegram to view this post
VIEW IN TELEGRAM
This media is not supported in your browser
VIEW IN TELEGRAM
Сделано на CSS
Please open Telegram to view this post
VIEW IN TELEGRAM