Разгони свой сайт
Содержание
Архивирование HTML и нагрузка на сервер
Изучаем сжатие
График издержек на сжатие
Издержки на сжатие и канал
Эффективность сжатия
Gzip-сжатие на сервере
Статическое архивирование
Сжатие CSS- и JavaScript-файлов
Сжатие CSS-файлов
Сжатие CSS-файлов
Сжатие JavaScript-файлов
Сжатие JavaScript-файлов
Сжатие изображений
PNG против GIF
GIF против PNG
favicon.ico
Полезные советы
Уменьшаем заголовки
Влияние на скорость доставки
Уменьшаем влияние cookie
В следующей лекции Кэширование
200.50K

Уменьшение файлов в размере

1. Разгони свой сайт

Лекция 2: Уменьшение файлов в размере
Мациевский Николай
webo.in
1 / 23

2. Содержание

• Архивирование HTML и нагрузка на
сервер
• Сжатие CSS- и JavaScript-файлов
• Сжатие изображений
• Уменьшение в размере заголовков
webo.in
2 / 23

3. Архивирование HTML и нагрузка на сервер

webo.in
3 / 23

4. Изучаем сжатие

• Формальная модель
– Издержки процессора
– Файловая система
– Постоянные издержки
• Тестирование
– Изменяем размер файлов
webo.in
4 / 23

5. График издержек на сжатие

webo.in
5 / 23

6. Издержки на сжатие и канал

webo.in
6 / 23

7. Эффективность сжатия

webo.in
7 / 23

8. Gzip-сжатие на сервере

• Уменьшение размера объектов до 88%
• Простота применения
AddOutputFilterByType DEFLATE
AddOutputFilterByType DEFLATE
AddOutputFilterByType DEFLATE
AddOutputFilterByType DEFLATE
DeflateCompressionLevel 7
text/html
text/css
text/javascript
application/x-javascript
• Пропорциональное ускорение
предзагрузки
webo.in
8 / 23

9. Статическое архивирование

• Приемлемо для мало изменяющихся
файлов
• На сервере размещается
подготовленный .gz архив
• Есть сложности с размещением
• Нужна поддержка для «старых»
браузеров
webo.in
9 / 23

10. Сжатие CSS- и JavaScript-файлов

Сжатие CSS- и JavaScriptфайлов
webo.in
10 / 23

11. Сжатие CSS-файлов

• В обычных случаях достаточно
регулярного выражения (-30% размера)
– php / perl / shell / python / ruby
• YUI Compressor для автоматизации и
максимального сжатия
– java
• CSS Tidy для всех остальных случаев
– php
webo.in
11 / 23

12. Сжатие CSS-файлов

webo.in
12 / 23

13. Сжатие JavaScript-файлов

• JSmin для простых случаев
– Портирован на большинство языков
• YUI Compressor для автоматизации
– java
• Dean Edwards Packer, максимальное
сжатие без gzip
– php
webo.in
13 / 23

14. Сжатие JavaScript-файлов

webo.in
14 / 23

15. Сжатие изображений

webo.in
15 / 23

16. PNG против GIF

• PNG8 лучше справляется со сжатием
изображений
• PNG32 может содержать полноцветную
палитру
• Полупрозрачность для PNG в IE6/7
через фильтры
• Проблемы совпадения цветов
решаются удалением чанков
webo.in
16 / 23

17. GIF против PNG

• Анимированные GIF не имеют
кроссбраузерных PNG-аналогов
• Небольшие GIF-изображения обычно
меньше
• GIF не имеют проблемы с совпадением
цветов
webo.in
17 / 23

18. favicon.ico


Мешается в очереди на загрузку
Загружается с того же домена
Нельзя отвечать 404-ошибкой
Оптимальный размер ~1Кб
Эффективно архивируется
AddOutputFilterByType DEFLATE image/x-icon
• PNG не поддерживается в IE
webo.in
18 / 23

19. Полезные советы

• Переводим bmp в png: bmp2png
• Переводим gif в png: gif2png
• Урезаем png: pngcrush, pngout,
TweakPNG
• Урезаем JPEG: jpegtran
webo.in
19 / 23

20. Уменьшаем заголовки

webo.in
20 / 23

21. Влияние на скорость доставки

• До 80% от размера
– Для небольших файлов (<1Кб)
• Не стоит выставлять то, что не
используется
– Например, ETag для динамических файлов
• Самый критичный компонент: cookie
– Жестко следим за размером cookie
webo.in
21 / 23

22. Уменьшаем влияние cookie

• Вынесение статики на отдельный хост
– Куда не передаются cookie
• Выставление cookie только для
отдельных директорий
• Выставление cookie на ограниченное
время
• Уменьшение размера ключей и
значений
webo.in
22 / 23

23. В следующей лекции Кэширование


Основы кэширования: Cache-Control
Условное кэширование: ETag
Настройка и сброс кэширования
Кэширования для IE: post-check, precheck
• Кэширование и архивирование для
iPhone
webo.in
23 / 23
English     Русский Правила