JavaScript Производительность
Как ускорить JavaScript код?
Снижение активности в циклах
Циклы часто используются в программировании.
Каждый оператор в цикле, включая оператор for, выполняется для каждой итерации цикла.
Операторы или присваивания, которые можно разместить за пределами цикла, заставят цикл работать быстрее.
Плохо:
for (let i = 0; i < arr.length; i++) {
Лучший код:
let l = arr.length;
for (let i = 0; i < l; i++) {
Плохой код обращается к свойству length массива каждый раз, когда цикл повторяется.
Более совершенный код получает доступ к свойству длины вне цикла и ускоряет выполнение цикла.
Ограничьте доступ к DOM
Доступ к HTML DOM происходит очень медленно по сравнению с другими операторами JavaScript.
Если вы ожидаете получить доступ к элементу DOM несколько раз, получите доступ к нему один раз и используйте его как локальную переменную:
Уменьшить размер DOM
Сохраняйте небольшое количество элементов в HTML DOM.
Это всегда улучшает загрузку страницы и ускоряет рендеринг (отображение страницы), особенно на небольших устройствах.
Каждая попытка поиска в DOM (например, getElementsByTagName) выиграет от меньшего размера DOM.
Избегайте ненужных переменных
Не создавайте новые переменные, если не планируете сохранять значения.
Часто можно заменить такой код:
let fullName = firstName + " " + lastName;
document.getElementById("demo").innerHTML = fullName;
С этим:
document.getElementById("demo").innerHTML = firstName + " " + lastName;
Отложить загрузку JavaScript
Размещение ваших скриптов в нижней части страницы позволяет браузеру загружать страницу первой.
Во время загрузки скрипта браузер не будет запускать другие загрузки. Кроме того, все действия по синтаксическому анализу и рендерингу могут быть заблокированы.
Спецификация HTTP определяет, что браузеры не должны загружать более двух компонентов одновременно.
Альтернативой является использование defer="true"
в теге скрипта. Атрибут defer указывает, что скрипт должен выполняться после завершения анализа страницы, но он работает только для внешних скриптов.
If possible, you can add your script to the page by code, after the page has loaded:
Пример
<script>
window.onload = function() {
const element = document.createElement("script");
element.src = "myScript.js";
document.body.appendChild(element);
};
</script>
Избегайте использования with
Избегайте использования ключевого слова with
. Это отрицательно сказывается на скорости. Это также загромождает области JavaScript.
Ключевое слово with
запрещено в строгом режиме.