Web Creator
ЦифровизацияРазработкаДизайнКейсыКомпанияКонтакты
Начать проект
Переключиться на светлую тему
Меню
Цифровизация бизнесаРазработка сложных проектовВеб-сервисы и приложенияКорпоративные системыЦифровой дизайнUsability & UX/UIНаши кейсыКомпанияКонтакты
Web Creator→Статьи

Увеличиваем скорость работы сайта при помощи оптимизации JavaScript

Сайт может работать быстрее, если выполнены следующие рекомендации по оптимизации JS‑кода. Если же этого не сделать, то сайт будет недостаточно быстро отображаться на стороне клиента.

Если какие‑то скриптовые библиотеки не нужны на странице — их надо отключить. В процессе разработки часто подключаются те скрипты, которые потом не используются. Например, скрипты для отладки. Или те скрипты, которые собирались использовать, но потом стали не нужны. Не надо заставлять пользователя загружать ненужный хлам.

Если без каких‑то скриптов сайт функционален, то загрузку этих JS‑скриптов осуществлять после отрисовки страницы (для этого надо поместить код в конец секции body). Некоторые скрипты нужны для создания эффектов, которые инициируются не сразу после загрузки страницы: их отложенная загрузка не влияет на первое впечатление от сайта. Автоматическое пролистывание слайдера или скрипт для сбора статистики посещений, например, легко могут быть инициированы уже после отрисовки страницы в браузере. Пусть лучше пользователь побыстрее увидит страницу, а не тратит при загрузке лишнее время ради того, чтобы через 5 секунд красиво перелистнулся рекламный баннер или чтобы его посчитали.

Используйте CDN для загрузки скриптов. На HTTP/1.1 файлы с одного домена загружались в ограниченное число потоков (не более шести), и для параллельной загрузки их распределяли по поддоменам. В HTTP/2 (который сегодня используют все крупные браузеры и CDN) запросы к одному домену идут мультиплексированно по одному соединению, поэтому разбивка по поддоменам больше не нужна и может даже навредить, а CDN ускоряет загрузку за счёт близости серверов к пользователю.

Блокирующие скрипты не должны подгружаться с «непонятных» внешних доменов. Если внешний домен перестанет отвечать или станет отвечать с длительной задержкой, то будет «тормозить» весь ваш сайт, а пользователи будут «любоваться» белым экраном. Если используете внешние домены для скриптов, то убедитесь, что эти домены достаточно стабильны.

JS надо сжать, минимизировать и оптимизировать. Удаление пробелов, переносов строк, сокращение названий переменных и другие оптимизации значительно уменьшают размер файлов скриптов и ускоряют загрузку. При использовании сторонних библиотек — подключайте минимизированную версию в production-окружении. Для собственных скриптов используйте специальные инструменты, сжимающие и оптимизирующие JavaScript: UglifyJS, JSMin, Closure Compiler, YUI Compressor. При использовании агрессивных оптимизаций обязательно прочтите рекомендации для используемого компрессора и протестируйте работоспособность полученных файлов.

Скрипты, используемые совместно, должны быть объединены в один файл. Загрузка одного файла в 50 КБ осуществляется быстрее загрузки 10 файлов по 5 КБ, отдача таких файлов меньше грузит сервер, да и сжатие эффективнее работает на больших файлах.

Используйте GZIP для сжатия данных. Современные браузеры поддерживают обработку сжатых данных. Оптимальный способ — предварительное сжатие используемых скриптов на максимальном уровне компрессии и отдача веб‑сервером уже сжатых файлов. Сжатие «на лету» нагружает сервер, поэтому его на нагруженных проектах лучше не использовать.

Кешируйте скрипты на стороне клиента — не заставляйте пользователей многократно скачивать один и тот же скрипт: используйте соответствующие заголовки в ответе веб‑сервера (Expires или Cache-Control max-age, Last-Modified или ETag).

Не используйте большие библиотеки без надобности — например, ради какого‑то элементарного эффекта на главной странице сайта не стоит на всех страницах подключать jQuery. Если для реализации всей интерактивности сайта может хватить 30 строчек простого JS‑кода, то использование объёмной библиотеки просто нерационально.

быстродействиефронтендJavaScriptвеб-разработка
Статья опубликована в 2015 году

Тематические статьи

Ленивая загрузка или загрузка по требованию на клиентской части

Бывает так, что часть содержимого страницы нужна не всем или не всегда, но на генерацию или передачу этого материала тратится много ресурсов. В этом случае имеет смысл сделать загрузку «ленивой», то есть не генерировать и не загружать в браузер информацию до тех пор, пока она не понадобится.

Статья опубликована в 2014 году
Ajax-навигация Turbolinks & Wiselinks

Увеличить отзывчивость интерфейса и снизить нагрузку на сервер можно при помощи Ajax‑навигации: если не перезагружать страницу целиком, а обновлять только содержание или отдельные фрагменты, то скорость работы сайта или приложения существенно возрастёт.

Статья опубликована в 2014 году
Ускоряем работу сайта: оптимизация HTML

Сайт может загружаться и отображаться быстрее, если выполнить следующие рекомендации по оптимизации HTML‑разметки, без которых скорость загрузки и отрисовки будет ниже.

Статья опубликована в 2014 году
Браузерное или клиентское кеширование

Кеширование статических ресурсов (картинок, скриптов, стилей) и неизменяющихся страниц на стороне браузера может сэкономить время загрузки страниц, если пользователь посещает сайт многократно или за визит просматривает несколько страниц, которые используют одинаковые ресурсы.

Статья опубликована в 2014 году
Современные форматы изображений, используемые в веб‑разработке

Выбор правильного формата изображения — ключевой аспект оптимизации веб‑страниц. От него зависят скорость загрузки, качество контента и пользовательский опыт. Рассмотрим популярные форматы, поддерживаемые современными браузерами, их особенности и сферы применения.

Статья опубликована в 2025 году
JPEG и PNG — в чём разница форматов?

JPEG и PNG — это два основных формата для изображений, которые используются на сайтах. В некоторых случаях лучше использовать JPEG, а в некоторых — PNG. Неверный выбор формата обычно приводит к кратному возрастанию размера изображения и, следовательно, к долгой загрузке изображений на медленном интернет-канале (мобильный интернет, например).

Статья обновлена в 2025 году
History API и hash‑навигация на Ajax‑сайтах

Загрузка контента при помощи Ajax и навигация, построенная на этой схеме, позволяют значительно повысить отзывчивость интерфейса разрабатываемого сайта или веб‑приложения. Однако такой подход заставляет решать проблемы, связанные с отображением адреса в браузере.

Статья опубликована в 2014 году
Ускоряем работу сайта за счёт оптимизации CSS

Время загрузки и отрисовки сайта в браузере можно заметно снизить, если воспользоваться следующими советами.

Статья опубликована в 2014 году
Чек-лист проверки фронтенда

По данному списку можно проверить фронтенд сайта или веб‑приложения для выявления и последующего исправления ошибок или недочётов.

Статья обновлена в 2024 году
Язык разметки HTML, таблицы стилей CSS и язык программирования JavaScript

Графические интерфейсы современных сайтов и веб‑приложений разрабатываются всего на трёх языках — HTML, CSS, JavaScript. Содержание каждой страницы сайта определяется HTML‑разметкой, внешний вид — содержанием таблицы стилей CSS, а интерактивность интерфейса — скриптами JavaScript. Кроме HTML и CSS, во фронтенд-разработке используют языки, которые браузер не исполняет напрямую: TypeScript, Dart и Kotlin компилируются в JavaScript или WebAssembly.

Статья опубликована в 2014 году
Web Creator
© 2004-2026 ООО «Веб Креатор»
Политика обработки персональных данных
ООО «Веб Креатор» входит в реестр
аккредитованных ИТ-компаний
Минцифры России
Пн-Пт с 10:00 до 19:00 [MSK, UTC+3]
Москва, Староалексеевская, 5
Telegram @WebCreatorTeam
s@web-creator.ru
+7 495 215 15 01
Цифровизация бизнесаКорпоративные системыМашинное обучение и ИИАвтоматизация процессовСистемная аналитикаСистемная интеграцияОбработка и анализ данныхРазработка на фреймворкахИнформационная безопасность
Разработка сложных проектовВеб-сервисы и приложенияЭлектронная коммерцияМобильная разработкаЦифровой дизайнUsability & UX / UIДизайн-системыСопровождение и DevOpsХостинговые решения
КомпанияКейсыКлиентыПроцессыТехнологииСтатьиВакансииЦеныКонтакты