
Size: a a a







<link rel="preload"> для шрифтов, проверьте, чтобы у вас не грузилось лишнего.<style>
@font-face {
font-family: "Roboto";
font-weight: 400;
src: url("./roboto-400.woff2") format("woff2");
}
@font-face {
font-family: "Roboto";
font-weight: 500;
src: url("./roboto-500.woff2") format("woff2");
}
</style><link rel="preload">) браузер загрузит только те файлы шрифта, которые ему нужны. Если на странице не используется Roboto с насыщенностью 500, браузер его просто не загрузит.
<link rel="preload" href="./roboto-400.woff2" as="font" />
<link rel="preload" href="./roboto-500.woff2" as="font" /><style>
@font-face {
font-family: "Roboto";
font-weight: 400;
src: url("./roboto-400.woff2") format("woff2");
}
@font-face {
font-family: "Roboto";
font-weight: 500;
src: url("./roboto-500.woff2") format("woff2");
}
</style>
<link rel="preload"> в этом случае? Тут же инлайн-стили, разве браузер не начнёт загружать шрифты сразу же?»<link rel="preload"> ставится в очередь на загрузку сразу же, как только распарсится HTML-парсером (даже немного раньше).

<link rel="preload"> не ок?»
window.structuredClone(), но не поясняет, почему это классно.structuredClone — это как _.cloneDeep(), но из коробки и быстрее._.cloneDeep(obj) иJSON.parse(JSON.stringify(obj))const a = { b: { c: 5 } }
history.pushState(a, document.title)
a.b.c = 6{ b: { c: 5 } }. Браузер склонирует объект a перед тем, как сохранить его в историю. Это называется «структурное клонирование» («structured clone»).history.pushState или postMessage, но нигде не выставлено наружу. В итоге, если вам надо склонировать объект, но вы не можете подключить lodash, приходится писать что-то такое: const oldState = history.state;
history.replaceState(obj, document.title);
const copy = history.state;
history.replaceState(oldState, document.title);
return copy;structuredClone(). Она делает то же, что и _.cloneDeep(), но без подключения внешних библиотек и (как минимум в Deno) быстрее.self.structuredClone() реализовали уже вчера ↓





