Рішення для серверної частини:
- Зменшити розмір файлів, що передаються
- використовувати CDN
- Винести статичні файли на окремий домен або під домен, таким чином збільшити кількість одночасних з'єднань браузера.
- Включити стиснення переданих файлів (gzip)
Рішення для клієнтської частини:
- Зменшити кількість запитів.
- Кешувати файли на стороні клієнта за допомогою заголовків Expires і Etags.
- Використовувати загальнодоступні CDN (Google CDN, Yandex CDN). Таким чином, існує ймовірність, що файл з загальнодоступного CDN вже буде зберігатися в кеші браузера.
- Асинхронна завантаження підключаються файлів.
Одним із способів оптимізації швидкості завантаження сайту є асинхронна завантаження файлів, яка не блокує отрисовку.
Але це одиничний випадок, коли потрібне завантаження одного файлу. Часто на практиці підключається безліч файлів.
Скрипт, який підключений з атрибутом defer виконається не порушуючи порядок виконання по відношенню до решти скриптам і його виконання відбудеться після повного завантаження і парсинга сторінки, але перед тим, як зголоситься DOMContentLoaded.
Скрипт, який підключений з атрибутом async виконається при першій нагоді після повного завантаження, але при цьому не очікує закінчення парсинга документа і до завантаження об'єкта window. Браузери не гарантують виконання скриптів в тому ж порядку в якому вони підключені.
extsrc.js - бібліотека, яка запускає скрипти на виконання після того, як сторінка завантажиться і відобразиться користувачеві. Працює коректно з document.write.