Читать «Разгони свой сайт» онлайн
Николай Мациевский
Методы клиентской оптимизации веб-страниц
Введение
Об этой книге и проекте webo.in
Web Optimizator
Благодарности
Глава 1. Что такое клиентская оптимизация?
1.1. Цели и задачи оптимизации
Основные задачи оптимизации
Краткий обзор технологий
1.2. Психологические аспекты производительности
Терпимое время ожидания
Эффекты медленной скорости загрузки
Как время ответа сайта влияет на пользовательскую психологию
1.3. Стадии загрузки страницы
Расставляем приоритеты
Узкие места
1.4. Клиентская и серверная оптимизация: сходство и различия
Кэширование во главу угла
Меньше запросов — легче серверу
Архивировать и кэшировать на сервере
Кто у кого на службе?
1.5. Применение в разработке приложений
Этап 1: Доставка информации и оформления
Этап 2: Кэширование файлов оформления и параллельные запросы
Этап 3: Жизнь после загрузки страницы
Этап 4: Предупреждаем действия пользователя
Глава 2. Уменьшение размера
2.1. Насколько ресурсоемко архивирование HTML
Издержки на использование mod_gzip
Формализация модели
Набор тестов
Результаты тестирования
Пара слов о файловой системе
Что быстрее: gzip или канал?
Исследование степени gzip-сжатия и загрузки процессора
Окончательные выводы
Конфигурируем Apache 1.3
Конфигурируем Apache 2
2.2. CSS и JavaScript в виде архивов
Статическое архивирование в действии
Проблемы для Safari
Конфигурируем Apache
Маленькие «но»
Два слова о nginx
2.3. Все о сжатии CSS
Инструменты
Графические результаты
Выводы
Практический пример
2.4. JavaScript: жать или не жать?
Инструменты и методика
Графические результаты
Промежуточные выводы
Есть ли жизнь после сжатия?
Скорость загрузки JavaScript-библиотек
Методы упаковки JavaScript
Производительность загрузки JavaScript-библиотек
2.5. PNG против GIF
Алгоритмы сжатия
Возможности PNG
Поддержка PNG в браузерах
PNG и проблема соответствия для фоновых CSS-изображений
Анимированные PNG: MNG против "PNG+"
Двигаемся к маленьким PNG
Полезные советы
2.6. Разгоняем favicon.ico — это как?
Краткое описание формата
Боевое крещение
Оптимальные размеры
PNG — быть или не быть?
А если еще и сжать?
data:URI нас спасет?
Заключение
2.7. Режем cookie
Оптимизируем размер, зону и время действия
Хостинг для компонентов без cookie
Глава 3. Кэширование
3.1. Expires, Cache-Control и сброс кэша
Настройка заголовка HTTP Expires
Спецификация кэширования
Практическое запрещение кэширования
Разрешение кэширования
Форсированный сброс кэша
3.2. Кэширование в IE: pre-check, post-check
Спецификация
Рассматриваем подробнее
Пример использования
3.3. Last-Modified и ETag
Last-Modified
ETag
Синхронизация ETag и Last-Modified
3.4. Кэширование в iPhone
Попадание в кэш
Сжатые компоненты
После перезагрузки
Заключение
Глава 4. Уменьшение числа запросов
4.1. Объединение HTML- и CSS-файлов
CSS-файлы в начале страницы
Объединение CSS-файлов
Практическое решение
Два слова об условных комментариях
4.2. Объединение JavaScript-файлов
Конструктивные предложения
В теории
На практике
К чему мы пришли?
Немного из теории HTTP-запросов
Суровая реальность
Возможное решение
Реализация на PHP
PHP Speedy
4.3. Техника CSS Sprites
Простой rollover-эффект
Сложный rollover-эффект
Проблемные места в IE