Разгони свой сайт Лекция 3: Кэширование webo.in Мациевский Николай

advertisement
Разгони свой сайт
Лекция 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
Download