Коли я подорожую, я часто стикаюся з поганим інтернет-зв'язком, що як веб-дизайнер змушує мене замислитися над принципами дизайну, щоб вирішити проблему швидкості роботи в Інтернеті навіть при поганому з'єднанні.
З практики я виніс для себе кілька корисних прийомів:
Наприклад, сторінка входу в CMS часто дуже проста. Невже для простої форми потрібно завантажувати весь Bootstrap та інші CSS/JS фреймворки? Важливі сторінки варто оптимізувати та написати нативний код.
Після повного рендерингу сторінки ми отримуємо кілька секунд, протягом яких користувач заповнює свої дані, а ми можемо завантажити та кешувати решту стилів у браузері у фоновому режимі. До того часу, як користувач увійде в систему, у нього, ймовірно, вже буде завантажений Bootstrap (а якщо він перебуває на Edge, то не буде...).
Справді! Емодзі має багато практичних переваг:
Іноді я поміщаю важливі стилі CSS, що визначають макет сторінки і основний макет, безпосередньо в HTML. Я встановлюю обмеження в 1 КБ, в яке намагаюся вкластися якомога більше. Недоліком такого підходу є те, що стилі повинні передаватися в кожному запиті і не можуть кешуватися, з іншого боку, вони завантажуються незрівнянно швидше, ніж зображення.
Я не такий вже й експерт зі швидкості завантаження, Мартін Міхалек скаже вам краще.
Я завжди використовую ajax для отримання неважливого або повільного контенту. Це трохи додає до технологічних вимог програми, але я можу собі це дозволити.
Прикладом гарного місця для використання ajax є практично все в адмініструванні. Дуже часто даних, які потрібно отримати, дуже багато, але користувачеві не все цікаво. Коли у користувача завантажений лише тонкий клієнт javascript, а всі дані отримуються через Vue та json, завантажується лише мінімальний обсяг даних, а відповіді є миттєвими.
Як це зробити у Vue: https://vue.baraja.cz/api-a-ajax-ve-vue-js
На бекенді я використовую бібліотеку для Nette: https://github.com/baraja-core/structured-api
Для статичної роздачі контенту рекомендую використовувати CDN для всіх типів сайтів. Якщо ви не можете налаштувати CDN, принаймні використовуйте Cloudflare в режимі проксі. Він буде автоматично кешувати для себе статичний контент на основі заголовків HTTP. Не у всіх хостинг-провайдерів Pops добре налаштований, а для довгих маршрутів це заощадить вам сотні мілісекунд на кожному запиті.
Один з моїх юніорів нещодавно розмістив на головній сторінці сайту зображення у форматі PNG, яке містило фотографію і займало 3 Мб. Він сказав, що це нормально, тому що сторінка швидко завантажилася на його з'єднанні (це відбувається на його оптиці вдома, чи не так...), плюс він сказав, що ми передаємо багато даних в ці дні, наприклад, відео.
Я ставлюся до цього по-старому і оптимізую те, що можу.
Фотографії у форматі JPG, а краще WEBP. Але збереження зображення у форматі JPG ще нічого не означає, його потрібно прогнати через сервіс оптимізації: https://tinyjpg.com
Якщо у вас є зображення в Git'і, цей інструмент може автоматично стиснути їх і надіслати pull request: https://imgbot.net. Коли додається нове зображення, воно знову надсилає PR.
Якщо потрібно стиснути тисячі зображень (наприклад, цілу галерею товарів на сайті), я використовую для цього десктопний додаток для Mac: https://imageoptim.com/mac.
Належне стиснення зображень зазвичай дозволяє зберегти найбільше даних. Іноді навіть 50%.
Jan Barášek Více o autorovi
Autor článku pracuje jako seniorní vývojář a software architekt v Praze. Navrhuje a spravuje velké webové aplikace, které znáte a používáte. Od roku 2009 nabral bohaté zkušenosti, které tímto webem předává dál.
Rád vám pomůžu:
Články píše Jan Barášek © 2009-2024 | Kontakt | Mapa webu
Status | Aktualizováno: ... | uk