3. План
- Принципы работы WWW
- На что уходит время?
- Методичный анализ
-Алгоритм оптимизации
-Некоторые правила
- Утилиты для мониторинга
- Клиентская оптимизация
- Психология ожидания
9. Загрузка веб-страницы
Этап «Виновник»
1 Ожидание в очереди HTTP спец.
2 DNS Lookup Сеть
3 Открытие TCP/IP соединения Сеть
4 Отправка HTTP запроса Сеть
5 Разбор запроса сервером Сервер
6 Формирование ответа Сервер
7 Компрессия ответа (1) Сервер
8 Пересылка ответа Сеть
9 Распаковка ответа (1) Браузер
10 Представление ответа Браузер
11 Закрытие соединения? (2) HTTP спец.
12 Отправка следующего запроса (3) HTML
1) Если компрессия включена
2) Соединение не закрывается - ждём следующий запрос
3) Если для представления требуются другие компоненты
10. Мы можем уменьшить задержки
на каждом этапе
Этап Оптимизация
1 Ожидание в очереди Уменьшить количество компонентов
2 DNS Lookup Уменьшить количество различных доменов
3 Открытие TCP/IP соединения Использовать сервера, которые географически ближе
4 Отправка HTTP запроса Минимизировать размер шапки запроса (Cookies)
5 Разбор запроса сервером Настройка / оптимизация сервера
6 Формирование ответа Зависит от типа компонента
7 Компрессия ответа (1) Отключить компрессию? А как же пункт 8?
8 Пересылка ответа Минимизировать размер ответа
9 Распаковка ответа (1) См. п. 7
10 Представление ответа Оптимизировать HTML, CSS, JS и д.р.
11 Закрытие соединения? (2) К счастью, соединение не закрывается в HTTP 1.1
12 Отправка следующего запроса (3) Минимизировать кол-во компонентов и редиректов
13. Некоторые правила
Ищем узкие места (учитываем приоритеты)
Советы могут противоречить
Стандартные приёмы могут усугубить ситуацию
Учитываем задержки «без попадания в кэш»
14. 1. Собираем симптомы
2. Формулируем цели
3. Определяем узкие места
4. Составляем список задач
5. Оцениваем ожидаемый эффект
6. Оцениваем затраты
7. Расставляем приоритеты
8. Анализируем эффект
9. Выполняем итерационно
Алгоритм оптимизации
15. Firebug + Yahoo Yslow
Google Chrome PageSpeed
Google Chrome Developer Tools
Pingdom Performance Tools
Google Analytics
Утилиты для мониторинга
27. «Экономный» способ
сохранения .jpg для Retina
1. Готовим изображение в 2 раза больше требуемого
2. Сохраняем как .jpg с высокой компрессией (качество 30 - 40%)
3. Уменьшаем размеры изображения в 2 раза с помощью CSS / HTML
4. Внешнее качество такой картинки повысится, а размер останется тем же
Оригинальный размер
Качество 80%
Размер 10Kb
Картинка в 2 раза больше
Качество 40%
Размер 11Kb
Картинка в 2 раза больше
Качество 80%
Размер 60Kb
28. Оптимизация компонентов /
JavaScript
Отладка JavaScript в Google Chrome
Показываем статус долгого процесса
Не ждём чуда или «ТаймАут»
Preload
Lazy Load
Ajax Post-load