Оптимизация сайтов, всего пару-тройками строк. | Поиск в интернете
Поиск в интернете
[ Помощь ] [ Форма ]




Оптимизация сайтов, всего пару-тройками строк.

Июнь 10, 2008 – 18:29

То о чем пойдет речь поможет в разы:
1. Сэкономить трафик вашим посетителям
2. Сэкономить ресурсы вашего сервера, где лежат скрипты вашего сайта
3. Уменьшить нагрузку


Как? Да очень просто. Есть такой файлик на всех хостингах .htaccess - вот с ним мы и будем работать. Работа не пыльная и займет всего 10-20 минут вашего времени, а результат вы увидите сразу же!

Открываем файл .htaccess, если вы используете какой-либо движок то там уже может быть что-то прописано для движка. Открываем и в свободное место пишем следующее:

#------------------------------#
# Кеширование img/files/html
#------------------------------#
ExpiresActive on
ExpiresByType image/jpeg "modification plus 3 months"
ExpiresByType image/gif "modification plus 12 months"
ExpiresByType image/png "modification plus 12 months"

ExpiresByType text/css "modification plus 3 months"
ExpiresByType text/javascript "modification plus 3 months"

ExpiresByType application/x-httpd-php "access plus 1 day"
ExpiresByType text/html "access plus 1 day"

Итак что мы сделали?

1. Активировали кеш (сейчас я не буду вдаваться в технический язык и говорить как это все называется, коротко но ясно)

ExpiresActive on

2. Выставили срок истечения обновления файла на плюс 3 месяца = plus 3 months. То есть мы дали понять, что этот файл будет обновлен через 3 месяца.

ExpiresByType image/jpeg "modification plus 3 months"

3. Эта строка делает то же самое но только с программой PHP на срок 1 день.

ExpiresByType application/x-httpd-php "access plus 1 day"

Как вы поняли, можно совмещать директивы с разными типами файлов.

Типы MIME Тип файла
Архив RAR (.rar) application/x-tar
Архив ZIP (.zip)

application/x-zip-compressed
Исполняемый файл для DOS или Microsoft Windows (.e application/octet-stream
Аудио- или видеозапись ASF video/x-ms-asf
Аудио- или видеозапись WMV video/x-ms-wmv
Аудиозапись AIFF audio/aiff

Аудиозапись AU (.au .snd) audio/basic
Аудиозапись MIDI audio/mid
Аудиозапись MP3 audio/mpeg
Аудиозапись WAV (.wav) audio/x-wav
Аудиозапись WMA audio/x-ms-wma
Аудиозапись AVI video/avi
Аудиозапись AVI (.avi) video/x-msvideo
Видеозапись Indeo (IVF) video/x-ivf
Видеозапись MPEG (.mpeg .mpg .mpe) video/mpeg
Видеозапись QuickTime (.qt .mov) video/quicktime
Визитная карточка, используемая почтовыми программ text/x-vcard
Графический файл ART image/x-jg
Графический файл BMP

image/bmp
Графический файл GIF image/gif
Графический файл JPEG image/jpeg
Графический файл PNG (.png) image/png
Графический файл Macromedia Flash application/futuresplash

Графический файл TIFF image/tiff
Документ Adobe Acrobat application/pdf
Документ HTML text/html
Документ Microsoft Excel

application/x-msexcel
Документ Microsoft Word application/msword
Документ RTF application/msword
Документ RTX text/richtext
Документ XML text/xml

Приложение application/x-msdownload
Приложение HTML (HTA) application/hta
Таблица стилей HTML text/css
Текстовой документ text/plain
ECMAScript text/ecmascript
Microsoft JScript text/Jscript
Microsoft JScript text/javascript
Microsoft VBScript text/vbs
Microsoft VBScript text/vbscript
Трехмерная интерактивная графика в формате VRML (. x-world/x-vrml

Но чаще кэшировать имеет смысл следующие типы:
Но для сайта используются только картинки типа JPEG (image/jpeg),GIF (image/gif),PNG (image/png), скрипты JAVASCRIPT (text/javascript), таблицы стилей CSS (text/css) ну и сам HTML (text/html) вместе с PHP (application/x-httpd-php)

И хотя как говорят некоторые люди, Opera и так хорошо кэширует. Но вы ведь не уверены что все ваши посетители сайта используют именно Оперу? Я например использую Firefox и точно знаю пока я не добавил эти директивы в файл htaccess броузер никак ничего не кешировал.

Если картинка выводится через скрипт, то можно использовать следующий код, кстати замечу что даже если вы скачиваете что-то с совершенно левого сайта (например картинки), то это также работает.

Кэширование изображений с помощью PHP:

//+-------------------------------------------------------------------------------+
//|
//| Получение даты/времени. для поля Expires (кэширования)
//|
//+-------------------------------------------------------------------------------+
$time =time(); // GET CURRENT DATE-TIME
$dayofweek =date('D',$time);
$year =date('Y',$time);
$month =date('M',$time);
$day =date('d',$time);
$hour =date('H',$time);
$minute =date('i',$time);

//+-------------------------------------------------------------------------------+
//|
//| Заголовки изображения, кеширование на 3 года.
//|
//+-------------------------------------------------------------------------------+
header("Content-type: image/jpeg");
header("Cache-control: public, max-age=".(60*60*24*120).', must-revalidate');
header("Expires: $dayofweek, $day $month ".($year+3)." $hour:$minute:00 GMT");

Это способ кэширования на стороне клиента с помощью заголовков, передаваемых при передаче документа, не важно какого, картинки или текста. Замечу, что в данном коде тип изображения JPEG (image/jpeg)

header("Cache-control: public, max-age=".(60*60*24*120).', must-revalidate');

Это установка кэша публичный, максимальный срок 6 месяцев (60*60*24*120) в секундах, броузер должен следовать инструкциям.

header("Expires: $dayofweek, $day $month ".($year+3)." $hour:$minute:00 GMT");

Этот кусок в передаваемом изображении говорит о том, что документ обновиться через три года ($year+3)

Если Вы не программист, используйте первый способ на уровне htaccess он и проще и меньше напряга с ним. Если же вы оптимизируете большой сайт на вывод изображения через скрипт, используйте второй вариант.

Вы можете эксперементировать с PHP кодом, и напомню, что заголовки можно передавать не только изображениям. Но и на простой вывод текста, например:

header("Content-type: image/jpeg");
header("Cache-control: public, max-age=".(60*60*24*120).', must-revalidate');
header("Expires: $dayofweek, $day $month ".($year+3)." $hour:$minute:00 GMT");

echo 'Hello world! :)';

Успешной Вам оптимизации! :)

Теги: , , , , , ,
Похожие статьи: Ссылка для блога:
Ссылка для форума: