Разгони свой сайт Лекция 1: Особенности клиентской оптимизации Мациевский Николай webo.in

advertisement
Разгони свой сайт
Лекция 1: Особенности клиентской оптимизации
Мациевский Николай
webo.in
1 / 23
Содержание
•
•
•
•
Цели и задачи клиентской оптимизации
Психологические аспекты
Связь с серверной оптимизацией
Применение в разработке вебприложений
webo.in
2 / 23
Цели и задачи клиентской
оптимизации
webo.in
3 / 23
Структура веб-страницы
• Один HTML-файл
• И много-много ресурсных файлов
– Таблицы стилей
– Клиентские скрипты
– Фоновые картинки
– Изображения на странице
– Мультимедийные файлы
webo.in
4 / 23
Фокус на стороне клиента
• Загрузка HTML занимает 5%
• Остальное приходится на статические
ресурсы
– Текстовые файлы
– Бинарное содержимое страницы
webo.in
5 / 23
Процесс загрузки страницы
• Предзагрузка
– Белый экран в браузере пользователя
• Интерактивная загрузка
– JavaScript-файлы
• Полная загрузка
– Картинки и мультимедиа
• Пост-загрузка
– После window.onload
webo.in
6 / 23
Основные задачи
• Уменьшение времени предзагрузки
– Максимально быстро показать
пользователю предварительную картинку
• Ускорение основной загрузки
– Распараллелить поток загрузки после
прохождения «узкого места»
• Обеспечить комфортную работу
– Устранить задержки при взаимодействии с
сайтом
webo.in
7 / 23
Основные методы (1)
• Уменьшение размера объектов
– Сжатие текста и оптимизация изображений
• Кэширование статики
– Минимум запросов при повторном
посещении
• Объединение объектов
– CSS Sprites, data:URI, объединение
текстовых файлов
webo.in
8 / 23
Основные методы (2)
• Параллельная загрузка объектов
– Уменьшение времени ожидания ответа
• Оптимизация CSS
– Оптимальная структура стилевых правил
• Оптимизация JavaScript
– Устранение «узких мест» в работе
клиентских скриптов
webo.in
9 / 23
Психологические аспекты
webo.in
10 / 23
Быстрые сайты – это хорошо
• Меньше раздражают пользователей
– Ожидание больше 4 секунд нервирует
– Пользователи с быстрым доступом ждут
меньше
• Вызывают больше доверия
– Побуждают к дальнейшим действиям
– Пользователи проводят больше времени
webo.in
11 / 23
Эффекты быстрых сайтов
• Быстрый интернет-магазин
– Создает ощущение надежности
• Быстрый развлекательный портал
– Затягивает пользователей
• Быстрый новостной портал / блог
– Повышает достоверность информации
webo.in
12 / 23
Прибыль быстрых сайтов
• Google (2006)
– 400ms = 20% рекламных доходов
• Amazon (2007)
– 100ms = 1% продаж
• Live.com (2007)
– 1000ms = 1,5% рекламных доходов
webo.in
13 / 23
Связь с серверной
оптимизацией
webo.in
14 / 23
Основные правила
• Кэширование во главу угла
– Уменьшает число запросов и время на их
передачу
• Меньше запросов – легче серверу
– Каждый сокет занимает серверные
ресурсы
• Архивировать и кэшировать на сервере
– Можно создавать статические архивы для
текстовых файлов
webo.in
15 / 23
Спорные моменты
• Параллельные загрузки
– Создают большое число одновременные
соединений
• Все-в-одном файле
– Сложное технологическое решение
• Уменьшение cookie в размере
– Может быть тяжело поддерживать
webo.in
16 / 23
Плюсы для сервера
• Снижение нагрузки
– За счет уменьшения числа соединений и
времени их использования
• Простое использование
– Несколько правил в конфигурационном
файле
• Поможет не только серверу
– Ускорение загрузки сайта у всех конечных
пользователей
webo.in
17 / 23
Применение в разработке
приложений
webo.in
18 / 23
Доставка информации
• Максимальное ускорение предзагрузки
– Сжатие для CSS/HTML
– Объединение CSS-файлов
• Убираем интерактивную загрузку
– Переносим JavaScript в основную загрузку
• В итоге: доставленный и оформленный
HTML
webo.in
19 / 23
Настройка сервера
• Кэширование
– Статические ресурсы должны браться из
клиентского кэша
• Архивирование
– «На лету» или в виде статических архивов
• Зеркала для параллельных запросов
– Зависит от общего числа файлов на
странице
webo.in
20 / 23
После основной загрузки
• «Ненавязчивый» JavaScript
– JavaScript – это расширение, а не основной
функционал
– Находит DOM-элементы и обеспечиваем
их взаимодействие с пользователем
• Серверные интерфейсы для AJAX
• Модульная загрузка компонентов
– Или один JavaScript-файл
webo.in
21 / 23
Пост-загрузка
• Предупреждаем действия пользователя
– Ресурсы, которые используются на
второстепенных страницах
– «Скрытый» функционал данной страницы
• Загрузка в процессе ознакомления
– 1-2 секунды уходит на знакомство с сайтом
– При чтении статей это может быть
несколько минут
– «Линия сгиба» страницы
webo.in
22 / 23
В следующей лекции:
Сжатие файлов
•
•
•
•
•
•
•
HTML-архивирование
Все секреты сжатия для CSS
Сжатие и кэширование для JavaScript
favicon.ico
PNG и GIF
Сжатие изображений
Два слова о cookie
webo.in
23 / 23
Download