Разгони свой сайт Лекция 3: Кэширование Мациевский Николай webo.in 1 / 19 Содержание • • • • Основы кэширования: Cache-Control Условное кэширование: ETag Настройка и сброс кэширования Кэширования для IE: post-check, precheck • Кэширование и архивирование для iPhone webo.in 2 / 19 Expires, Cache-Control и сброс кэша webo.in 3 / 19 Expires и Cache-Control • Expires – время актуальности информации • Cache-Control – срок кэширования данных – директивы кэширования для проксисерверов – «тонкая» настройка кэширования webo.in 4 / 19 «Вечное» кэширование • Expires и(ли) Cache-Control – на месяц, год или 10 лет вперед • Плюсы – При повторном посещении 90-99% запросов исчезнут • Минусы – Файл нельзя обновить у всех пользователей (будет использован кэш) webo.in 5 / 19 Запрет и сброс кэша • Expires – на текущую дату • Cache-Control – max-age=0, no-store, no-cache • Сброс кэша – Уникальное физическое имя файла – Уникальный GET-параметр у файла webo.in 6 / 19 Условное кэширование webo.in 7/ 19 Last-Modified • Сервер – Last-Modified: дата изменения • Браузер – If-Modified-Since: дата документа в кэше • Если метки совпадают, то сервер отвечает: 304 Not Modified webo.in 8 / 19 ETag • Уникальный идентификатор ресурса, аналогичен Last-Modified • Может содержать произвольное число • Решает проблему распределения файлов по нескольким серверам webo.in 9 / 19 Синхронизация файлов • Метка файла • Зависит от даты изменения • Зависит от файловой системы • Зависит от версии на текущем сервере • Нужно синхронизировать • Или дату изменения (вплоть до секунд) • Или расположение на файловой системе • Или версию файла webo.in 10 / 19 Кэширование в IE webo.in 11 / 19 post-check • IE отображает ресурс из кэша • Но после этого делает запрос на сервер для проверки актуальности • Проверка кэша не влияет на скорость загрузки webo.in 12 / 19 pre-check • Аналогичен истекшему кэшу webo.in 13 / 19 Кэширование в iPhone webo.in 14 / 19 Несколько фактов • Продано несколько миллионов экземпляров • Доля рынка браузеров – 0,15% • Используем Safari для просмотра страниц webo.in 15 / 19 В центре исследования • Максимальный размер отдельного компонента в кэше • Максимальный размер кэша для всех компонентов • Эффект gzip-сжатия для размера кэша • Очистка кэша при перезагрузке webo.in 16 / 19 Максимальный размер кэша • Для отдельного компонента – 25 Кб • Для всех компонентов – 475-500 Кб • В кэше сохраняются не архивированные версии webo.in 17 / 19 Перезагрузка и общие советы • Кэш очищается при перезагрузке • Нужно следить за числом компонентов и общим размером • Для iPhone критична JavaScriptпроизводительность webo.in 18 / 19 В следующей лекции Объединение файлов • • • • • • Объединение CSS-файлов Объединение JavaScript-файлов Объединение картинок: CSS Sprites Объединение картинок: data:URI data:URI и CSS Sprites Методы экстремальной оптимизации webo.in 19 / 19