Legosp Forum

Shop-Script "Legosp" => Разработка => Тема начата: delasker от Октября 29, 2012, 07:59:58 am

Название: Ускорение работы сайта
Отправлено: delasker от Октября 29, 2012, 07:59:58 am
Конечно, каждый мастер и не очень мастер применяет свои способы ускорения и оптимизации: подбор хостинга, сжатие изображений, мудрит с кодом и т.п. Но я бы предложил способ увеличения скорости сайта, рекомендованный Google. Так уж вышло, что пришлось мне переделывать и доводить сайт http://spp37.ru (http://spp37.ru), начатый другим. Шаблон оказался не на css, а с большим количеством картинок. Обычное дело: сделал, запустил в Firefox c расширением Firebug. там есть вкладка Page Speed. И ужаснулся, скорость сайта была оценена как 61. Порылся в интернете и сразу же нашёл рекомендации Google, названные htaccess кэширование. Предлагается использовать кэш браузера на стороне пользователя. Ну подробности что и как почитать лучше у Брина. А по сути в файл .htaccess нужно добавить следующий код
# кеширование в браузере на стороне пользователя
<IfModule mod_expires.c>
ExpiresActive On
ExpiresDefault "access 7 days"
ExpiresByType application/javascript "access plus 1 year"
ExpiresByType text/javascript "access plus 1 year"
ExpiresByType text/css "access plus 1 year"
ExpiresByType text/html "access plus 7 day"
ExpiresByType text/x-javascript "access 1 year"
ExpiresByType image/gif "access plus 1 year"
ExpiresByType image/jpeg "access plus 1 year"
ExpiresByType image/png "access plus 1 year"
ExpiresByType image/jpg "access plus 1 year"
ExpiresByType image/x-icon "access 1 year"
ExpiresByType application/x-shockwave-flash "access 1 year"
</IfModule>
# Cache-Control
<ifModule mod_headers.c>
# 30 дней
<filesMatch "\.(ico|pdf|flv|jpg|jpeg|png|gif|swf)$">
Header set Cache-Control "max-age=2592000, public"
</filesMatch>
 
# 30 дней
<filesMatch "\.(css|js)$">
Header set Cache-Control "max-age=2592000, public"
</filesMatch>
 
# 2 дня
<filesMatch "\.(xml|txt)$">
Header set Cache-Control "max-age=172800, public, must-revalidate"
</filesMatch>
 
# 1 день
<filesMatch "\.(html|htm|php)$">
Header set Cache-Control "max-age=172800, private, must-revalidate"
</filesMatch>
</ifModule>



На всякий случай ещё архив прилагаю, во избежание если в коде символы не так записались.
Применил к упомянутому сайту и, о Чудо - скорость уже 80. Ну не буду говорить о результате. Сайт просто полетел, по сравнению с тем что было.

[вложение удалено администратором]
Название: Re: Ускорение работы сайта
Отправлено: lugobor от Октября 31, 2012, 02:30:14 am
Насколько я понял, этим можно счастье сделать любому движку, не только лего?
Название: Re: Ускорение работы сайта
Отправлено: delasker от Октября 31, 2012, 06:20:50 am
Да, рекомендации Google общие для всех. Из практики личной - применил к MaxSite, эффект тот же.
А здесь я привёл вариант подходящий именно для Lego и работающий у меня. Есть и другие, если этот не заработал и дал 500- ю ошибку.
Вот другой вариант:
# использование кеша браузеров
FileETag MTime Size
<ifmodule mod_expires.c>
<filesmatch ".(jpg|jpeg|gif|png|ico|css|js)$">
ExpiresActive on
ExpiresDefault "access plus 1 year"
</filesmatch>
</ifmodule>

#Запрет отдачи HTTP-заголовков Vary браузерам семейства MSIE
<IfModule mod_setenvif.c>
BrowserMatch "MSIE" force-no-vary
BrowserMatch "Mozilla/4.[0-9]{2}" force-no-vary
</IfModule>

А ещё там же даётся вариант удалить заголовки ETag и Last-Modified, что устранит обмен при загрузке запросами о новой версии кэша. Но в общем на практике не дало ничего.
Собственно, раздел там огромный и его изучить надо.
Название: Re: Ускорение работы сайта
Отправлено: lugobor от Октября 31, 2012, 09:35:26 am
Спасибо!
Название: Re: Ускорение работы сайта
Отправлено: util от Октября 31, 2012, 10:32:10 am
Файл .htaccess который в корне хоста или сайта(магазина) ?
Название: Re: Ускорение работы сайта
Отправлено: pavelsmorchkov от Октября 31, 2012, 12:30:08 pm
реально работает) с 76 до 87
Название: Re: Ускорение работы сайта
Отправлено: delasker от Ноября 01, 2012, 07:54:02 am
Цитировать
Файл .htaccess который в корне хоста или сайта(магазина) ?
В корне сайта
Цитировать
реально работает) с 76 до 87
Предлагаю вообще включить в Lego по умолчанию.
Это ещё не всё. Доштудирую тему, выложу ещё чего понял. А может кто пограмотнее почитает и даст что-то конкретное
Название: Re: Ускорение работы сайта
Отправлено: delasker от Ноября 02, 2012, 06:55:40 am
Ну можно закомментировать с пояснением. А так, вот цитата:
Цитировать
Также расчеты компании Netcraft показывают, что web-сервер Apache продолжает оставаться самым популярным в мире – в январе 2012 года его рыночная доля составляла аж 64,91%. А так, вообще-то, тройка лидеров выглядит следующим образом:

    Apache – 64,91% (в декабре 2010 года было 65,22%);
    Microsoft – 14,46% (14,86%);
    nginx – 9,63% (8,85%)
Название: Re: Ускорение работы сайта
Отправлено: delasker от Декабря 10, 2012, 12:42:37 pm
Вот ещё мулечка и, как мне кажется, очень положительно влияющая на скорость. Это mod_deflate - сжатие файлов. В противовес GZIP. Для того чтобы включить, в самое начало .htaccess вставить код:
<ifmodule mod_deflate.c="">
<filesmatch .(js|css|.jpg|.gif|.png|.tiff|.ico)$="">
SetOutputFilter DEFLATE
</filesmatch>
</ifmodule>
Как видите указаны типы файлов, которые нужно жать. Можно что-то исключить или добавить.
Пробуем, отписываемся. Должно работать почти везде.
Название: Re: Ускорение работы сайта
Отправлено: pavelsmorchkov от Декабря 10, 2012, 04:19:12 pm
сжатие включил но не работает
Цитировать
Включите сжатие

Сжатие ресурсов с помощью gzip или deflate позволяет уменьшить объем данных, передаваемых по сети.
Подробнее...

Предложения для этой страницы

Сжатие следующих ресурсов посредством gzip позволит уменьшить их размер для переноса на 281.2Кб (на 80%).
Сжатие http://xn----9sbjd4bihc0f.net/ позволит уменьшить размер на 97.7Кб (на 83%).
Сжатие http://xn----9sbjd4bihc0f.net/index.php?res=1366 позволит уменьшить размер на 97.7Кб (на 83%).
Сжатие http://vk.com/css/rustyle.css?174 позволит уменьшить размер на 41.2Кб (на 78%).
Сжатие http://vk.com/css/widgets.css?45 позволит уменьшить размер на 15.7Кб (на 80%).
Сжатие http://vk.com/css/ui_controls.css?33 позволит уменьшить размер на 8.8Кб (на 77%).
Сжатие http://xn----9sbjd4bihc0f.net/.../jquery.menu.1.3.3.js позволит уменьшить размер на 5.3Кб (на 68%).
Сжатие http://xn----9sbjd4bihc0f.net/.../wufoo.js позволит уменьшить размер на 3.8Кб (на 69%).
Сжатие http://counter.rambler.ru/top100.jcn?2427140 позволит уменьшить размер на 3.8Кб (на 56%).
Сжатие http://xn----9sbjd4bihc0f.net/core/core_ajaxconst.php позволит уменьшить размер на 3.1Кб (на 79%).
Сжатие http://vk.com/widget_poll.php?... позволит уменьшить размер на 2.9Кб (на 61%).
Сжатие http://html5shim.googlecode.com/svn/trunk/html5.js позволит уменьшить размер на 1.1Кб (на 50%).
Название: Re: Ускорение работы сайта
Отправлено: delasker от Декабря 11, 2012, 08:46:33 am
А если GZIP включить?
<IfModule mod_gzip.c>
mod_gzip_on       Yes
mod_gzip_dechunk  Yes
mod_gzip_item_include file      \.(html?|xml|css|js|php|jpg|png|gif)$
mod_gzip_item_include handler   ^cgi-script$
mod_gzip_item_include mime      ^text/.*
mod_gzip_item_include mime      ^application/x-javascript.*
mod_gzip_item_exclude mime      ^image/.*
mod_gzip_item_exclude rspheader ^Content-Encoding:.*gzip.*
</IfModule>
Либо другой вариант mod_deflate:
<IfModule mod_deflate.c>
AddOutputFilterByType DEFLATE text/html text/plain text/xml application/xml application/xhtml+xml text/javascript text/css application/x-javascript
BrowserMatch ^Mozilla/4 gzip-only-text/html
BrowserMatch ^Mozilla/4.0[678] no-gzip
BrowserMatch bMSIE !no-gzip !gzip-only-text/html
<ifmodule mod_gzip.c>
mod_gzip_on Yes
mod_gzip_item_include file \.js$
mod_gzip_item_include file \.css$ </ifmodule>
</IfModule>
А сами js сервисами пожать если?
Название: Re: Ускорение работы сайта
Отправлено: delasker от Декабря 11, 2012, 09:02:50 am
А потом, Вы про оптимизацию изображений не слышали? У Вас, к примеру взял, фото lacoste-pour-femme-lacoste-dlya-zhenschin-391 размером 300х300 в PNG и его размер 113 kb. Я вот взял и оптимизировал и вышел тот же PNG размером 26 kb. И так все картинки. Какая уж тут скорость
Название: Re: Ускорение работы сайта
Отправлено: pavelsmorchkov от Декабря 11, 2012, 10:23:17 am
картинок очень много и вручную их править не вариант
Название: Re: Ускорение работы сайта
Отправлено: delasker от Декабря 11, 2012, 01:52:10 pm
так есть сервисы, где пакетом можно
Название: Re: Ускорение работы сайта
Отправлено: pavelsmorchkov от Декабря 30, 2012, 02:46:43 pm
картинки ужал програмкой все сразу) я даже и не знал что есть такой удобный софт) загрузка и правду быстрее теперь...
Цитировать
Предложения для этой страницы

Следующие ресурсы идентичны по содержанию, но получены от разных URL. Предоставляйте эти ресурсы по одному и тому же URL, чтобы сэкономить 1 запр. и 100.3Кб.
http://xn----9sbjd4bihc0f.net/
http://xn----9sbjd4bihc0f.net/index.php?res=1366
Следующие ресурсы идентичны по содержанию, но получены от разных URL. Предоставляйте эти ресурсы по одному и тому же URL, чтобы сэкономить 1 запр. и 9.0Кб.
http://xn----9sbjd4bihc0f.net/css/css_ps/image/spryte.png
http://xn----9sbjd4bihc0f.net/css/css_ps/images/spryte.png
Следующие ресурсы идентичны по содержанию, но получены от разных URL. Предоставляйте эти ресурсы по одному и тому же URL, чтобы сэкономить 1 запр. и 6.7Кб.
http://widget.siteheart.com/apps/js/sh.js
http://widget.siteheart.com/apps/js/sh.js?3
почему сайт дублируется? http://xn----9sbjd4bihc0f.net/
http://xn----9sbjd4bihc0f.net/index.php?res=1366
Название: Re: Ускорение работы сайта
Отправлено: Bas916 от Января 03, 2013, 07:46:50 pm
Добавил и сжатие и все с первого поста. Эффекта ноль :(

Все равно выдает мол не включено кэширование на стороне клиента((
Название: Re: Ускорение работы сайта
Отправлено: pavelsmorchkov от Января 04, 2013, 12:26:17 pm
а у меня включилось сжатие и тоже не сразу... писал хостеру чтоб включили
Название: Re: Ускорение работы сайта
Отправлено: nictboom от Января 04, 2013, 08:30:50 pm
Цитировать
Добавил и сжатие и все с первого поста. Эффекта ноль (http://forum.shop-script.org/Smileys/akyhne/sad.gif)
предложу свой вариант того же "винигрета" и практически идентичен, но сделать копию перед правкой советую, может и сайт "от испуга лечь" :) :[spoiler]
<IfModule mod_expires.c>
ExpiresActive On
ExpiresDefault "access plus 1 month"

# One year cache
ExpiresByType image/x-icon "access plus 1 year"
ExpiresByType image/jpeg "access plus 1 year"
ExpiresByType image/png "access plus 1 year"
ExpiresByType image/gif "access plus 1 year"
ExpiresByType application/x-shockwave-flash "access plus 1 year"
ExpiresByType audio/mpeg "access plus 29030400 seconds"

#One week
ExpiresByType text/css "access plus 604800 seconds"

#One month
ExpiresByType text/javascript "access plus 1 year"
ExpiresByType application/x-javascript "access plus 1 year"
</IfModule>

# Cache-Control
<ifModule mod_headers.c>
# 30 дней
<filesMatch "\.(ico|pdf|flv|jpg|jpeg|png|gif|swf)$">
Header set Cache-Control "max-age=2592000, public"
</filesMatch>
# 30 дней
<filesMatch "\.(css|js)$">
Header set Cache-Control "max-age=2592000, public"
</filesMatch>
# 2 дня
<filesMatch "\.(xml|txt)$">
Header set Cache-Control "max-age=172800, public, must-revalidate"
</filesMatch>
# 1 день
<filesMatch "\.(html|htm|php)$">
Header set Cache-Control "max-age=172800, private, must-revalidate"
</filesMatch>
</ifModule>

FileETag MTime Size
<ifmodule mod_expires.c>
<filesmatch ".(jpg|jpeg|gif|png|ico|css|js)$">
ExpiresActive on
ExpiresDefault "access plus 1 year"
</filesmatch>
</ifmodule>

<IfModule mod_deflate.c>
AddOutputFilterByType DEFLATE text/html text/plain text/xml application/xml application/xhtml+xml text/javascript text/css application/x-javascript
BrowserMatch ^Mozilla/4 gzip-only-text/html
BrowserMatch ^Mozilla/4.0[678] no-gzip
BrowserMatch bMSIE !no-gzip !gzip-only-text/html
<IfModule mod_gzip.c>
mod_gzip_on Yes
mod_gzip_item_include file \.js$
mod_gzip_item_include file \.css$
</IfModule>
</IfModule>
[/spoiler]
Название: Re: Ускорение работы сайта
Отправлено: pavelsmorchkov от Января 05, 2013, 11:09:23 am
почему сайт дублируется? http://xn----9sbjd4bihc0f.net/
http://xn----9sbjd4bihc0f.net/index.php?res=1366
Название: Re: Ускорение работы сайта
Отправлено: nictboom от Января 05, 2013, 08:36:35 pm
дублируется где? в роботс.тхт закрыт, значит все гуд.
Название: Re: Ускорение работы сайта
Отправлено: pavelsmorchkov от Января 07, 2013, 04:09:23 pm
гугл пишет
Предложения для этой страницы

Следующие ресурсы идентичны по содержанию, но получены от разных URL. Предоставляйте эти ресурсы по одному и тому же URL, чтобы сэкономить 1 запр. и 100.3Кб.
http://xn----9sbjd4bihc0f.net/
http://xn----9sbjd4bihc0f.net/index.php?res=1366
Название: Re: Ускорение работы сайта
Отправлено: nictboom от Января 07, 2013, 07:43:17 pm
Вероятно ноги растут от сюда, head.tpl.html<script language="javascript">
function send_res()
{
...
r_obj.open('GET','./index.php?res='+param,true);
...
}
</script>
что и для чего добавлено, Вам видней.
Название: Re: Ускорение работы сайта
Отправлено: vico7 от Апреля 22, 2013, 07:47:13 pm
Приветствую всех.  :)
Долго время не мог справиться с недогрузкой с сервера файлов css и js. Только после неоднократных обновлений страницы картинка приходила в норму и начинали работать скрипты.
Проверил на  pingdom.com и увидел статус 500 у этих файлов. В логах сайта тоже нашел 500 и 404 статусы на  css и js.
Установил последний демо на хостинг.  Те же яйца. Разбор полетов привел пока к core/jscss.php, где находится логика решения на сжатие и кеширование.
При отключении (закомментировал) в .htaccess перехода к core/jscss.php

#copress js and css
      #  RewriteRule core/js/(.*)\.js$ core/jscss.php [L]
      #  RewriteRule css/css_(.*)/(.*).css$ core/jscss.php [L]
      #  RewriteRule ^core_ajaxconst.js$ core/core_ajaxconst.php [L]

проблема со статус 500 решилась. Убрал кеширование на своем сайте - все ОК. Но теперь - без сжатия и кеширования css и js. А они пока у меня самые большие по размеру.

Предварительный вывод:
 
1.  core/jscss.php приводит к статус 500  :-\
2. что-то с настройками моего хостера.     :'(,  но ведь pingdom.com то же не того...
3. ... значит "так надо"...

Как исправить?

И исчо.
Почему в исходном коде страницы первые несколько строк пустые?
Почему в html коде окошка логина повторно используется один и тот же id ?

С уважением, Владимир.