Старый 31.01.2008, 11:35   #1
Специалист
 
Аватар для Kashey
 
Регистрация: 02.07.2007
Сообщений: 453
Вес репутации: 217
Kashey - очень-очень хороший человекKashey - очень-очень хороший человекKashey - очень-очень хороший человекKashey - очень-очень хороший человек
По умолчанию Убыстрение загрузки JS и CSS файлов.

Незнаю знаете вы или не знаете, но
1.Пока не загрузятся стили - страница отображаться не будет
2.Пока не загрузиться(и не выполниться) скрипт который вы инклюдите - дальше страница отображаться не будет
3.Из пункта 2 следует что в один момент времени грузиться( и исполняется) только один скрипт.
*Но в зависимости от написания второй скрипт тоже может грузиться(но не исполняться) одновременно с первым.. но
4.Один браузер в один момент времени держит только два(или четыре?) соединения с одним хостом.
Тоесть в среднем за загрузку 6ти скриптом браузер сделает 6 запросов к серверу один за другим.
К картинкам это в общем плане не относиться, мозила вроде 4 картинки одновременно тащит.
НО НЕ БОЛЕЕ!

Получается что стандартная страница с
1. один файл css
2. один файл js
3. пара файлов js фреймворка ( А ПРЕДСТАВИМ ЧТО ЭТО ПРОТОТИП! С АСУЛОУСОМ!)
ждет в среднем 1-2 секунды на "fetch" этих файлов. И только потом прорисовывается.

Да половина загрузок выглядит аки "If-Match || If-Modifited" и обрабатывается относительно быстро
Часть файлов вообще не запрашивается ( встроенный Min-Max Age )
А всеми нелюбимый IE вообще любит не спрашивать даже если надо ( и сидит как дурак со старыми версиями )

В общем это была вступительная статейка, чтобы люди прониклись..

Итак для решения этих проблем ( которые до меня дошли после прочтения http://habrahabr.ru/blog/AJAX/16489.html )
я взял описанный в статье скриптик и малек его перешурстил
сам скриптик

Итак скриптик может как вариант работать также как и оригинал
добавляем в .htaccess
Цитата:
RewriteRule (.*\.css) combine.php?type=css&files=$1 [QSA,L]
RewriteRule (.*\.js) combine.php?type=javascript&files=$1 [QSA,L]
и работает вторая ветка combine.php
И.. получаем только минимизированые jsminом скрипты, сжатые вместе и отданные вам в суппортед кодировке.

Или.. ( вот оно нововведение )
В вашем HEADER( который генериться с помошью php ) пишем
Цитата:
<link rel="stylesheet" type="text/css" href="<?=combine_makeref("css",$HEADERcssfile)?>">
или страшную строчку
Цитата:
<script language="JavaScript" src="<?=combine_makeref("javascript","scripts/positioning.js,~brouser.js,~scripts.js,~site.js,sc ripts/aculous/lib/prototype.js,scripts/aculous/src/builder.js,~effects.js,~dragdrop.js,~controls.js,~ slider.js")?>"></script>
(размер оригинала, размер минимизированого, размер сжатого
и все за ОДИН запрос)

и получаем некое ИМЯ. которое меняется при изменении файлов( те уникально для набора файлов и времени их изменения ( а вообще это простой E-Tag ))
и файло этот Expires гдето через год.
При обращении к файлу он выбирает лучший вариант сжатия и отдает вам.
(требуется добавить в .htaccess)
Цитата:
RewriteRule (.*\.cssf) combine.php?type=css&fetch=$1 [QSA,L]
RewriteRule (.*\.jsf) combine.php?type=javascript&fetch=$1 [QSA,L]
Уже нааамного лучше..
Ну и последний "бест" вариант это использовать заместо combine_makeref функцию combine_staticref
она на этапе выдачи хидера определит вариант сжатия и даст статическую линку на файло..
Отдавайте его гниксами и другими приблудами без вызова php кода лишний раз..

Ух, донаписался.
Ну в общем жду каментов
__________________
Нужны новости? - На скане полмиллиона новостей. Всяко разных.
И как всегда это все ScanLog записывает
Kashey вне форума   Ответить с цитированием
Старый 31.01.2008, 11:42   #2
Специалист
 
Аватар для Kashey
 
Регистрация: 02.07.2007
Сообщений: 453
Вес репутации: 217
Kashey - очень-очень хороший человекKashey - очень-очень хороший человекKashey - очень-очень хороший человекKashey - очень-очень хороший человек
По умолчанию

.. так забыл дописать
"СТРАШНАЯ СТРОКА"
(размер оригинала 204 кб, размер минимизированого 133кб, размер сжатого 31кб
и все за ОДИН запрос)

Эта страница( вот прямо вот эта )
при полной перерисовки тянет 3 скрипта на 60кб и тратит на это полторы секунды!
__________________
Нужны новости? - На скане полмиллиона новостей. Всяко разных.
И как всегда это все ScanLog записывает
Kashey вне форума   Ответить с цитированием
Старый 01.02.2008, 07:27   #3
Злой модератор
 
Аватар для Wink
 
Регистрация: 25.03.2007
Адрес: Deep forest
Сообщений: 5,343
Вес репутации: 502
Wink - прекрасное будущееWink - прекрасное будущееWink - прекрасное будущееWink - прекрасное будущееWink - прекрасное будущееWink - прекрасное будущееWink - прекрасное будущееWink - прекрасное будущееWink - прекрасное будущееWink - прекрасное будущееWink - прекрасное будущее
По умолчанию

Цитата:
Сообщение от Kashey Посмотреть сообщение
Ну в общем жду каментов
Афтар аццкей сотона. Каменты на хабре рулят.

Цитата:
Сообщение от Vitaly
Проблема в том, что часть устаревших браузеров не умеет понимать упакованный жабаскрипт и CSS. Вот HTML умеет, а JS и CSS ни фига. Честное пионерское.
Wink вне форума   Ответить с цитированием
Старый 01.02.2008, 07:38   #4
Специалист
 
Аватар для Kashey
 
Регистрация: 02.07.2007
Сообщений: 453
Вес репутации: 217
Kashey - очень-очень хороший человекKashey - очень-очень хороший человекKashey - очень-очень хороший человекKashey - очень-очень хороший человек
По умолчанию

На хабре база данных упала. Посему туда на раздербанивание это не отправиш.
А что такое часть устаревших браузеров?
Цитата:
if (!strstr($_SERVER['HTTP_USER_AGENT'], 'Opera') &&
preg_match('/^Mozilla\/4\.0 \(compatible; MSIE ([0-9]\.[0-9])/i', $_SERVER['HTTP_USER_AGENT'], $matches))
{
$version = floatval($matches[1]);
if ($version < 6)$encoding = 'none';
if ($version == 6 && !strstr($_SERVER['HTTP_USER_AGENT'], 'EV1')) $encoding = 'none';
}
далой старые браузеры.
Все не все не знаю. Но если один человек из тысячи залеся на сайт. С интернет эксплорер 4.0 Да он и так ничего нормального не увидит, в своем разрешении 640х480
это так сарказм. УБИВАТЬ НАДО ТАКИХ юзвероЛЮДЕЙ. И ФАЕР ИМ НАСИЛЬНО СТАВИТЬ..
ВСЕМ!!.МУхахаха-ахаха-аха
__________________
Нужны новости? - На скане полмиллиона новостей. Всяко разных.
И как всегда это все ScanLog записывает
Kashey вне форума   Ответить с цитированием
Старый 01.02.2008, 08:03   #5
Злой модератор
 
Аватар для Wink
 
Регистрация: 25.03.2007
Адрес: Deep forest
Сообщений: 5,343
Вес репутации: 502
Wink - прекрасное будущееWink - прекрасное будущееWink - прекрасное будущееWink - прекрасное будущееWink - прекрасное будущееWink - прекрасное будущееWink - прекрасное будущееWink - прекрасное будущееWink - прекрасное будущееWink - прекрасное будущееWink - прекрасное будущее
По умолчанию

Да и фиг бы с этими старыми браузерами. Непонятно как поведут себя в таких случаях
Код:
Nokia6230i/2.0 (03.25) Profile/MIDP-2.0 Configuration/CLDC-1.1
SonyEricssonT610/R501 Profile/MIDP-1.0 Configuration/CLDC-1.0
и им подобные. А таких становится всё больше.
Wink вне форума   Ответить с цитированием
Старый 01.02.2008, 11:21   #6
Специалист
 
Аватар для Kashey
 
Регистрация: 02.07.2007
Сообщений: 453
Вес репутации: 217
Kashey - очень-очень хороший человекKashey - очень-очень хороший человекKashey - очень-очень хороший человекKashey - очень-очень хороший человек
По умолчанию

SEW610 кушает
А вообще у меня на сайте при загрузке страницы идет Ajax.Request двух скрипт файликов. По разному упакованных.
И по факту их работы я выношу суждение о поддержке сжатия.
__________________
Нужны новости? - На скане полмиллиона новостей. Всяко разных.
И как всегда это все ScanLog записывает
Kashey вне форума   Ответить с цитированием
Старый 01.02.2008, 19:18   #7
Новичок
 
Регистрация: 27.08.2007
Сообщений: 28
Вес репутации: 0
Siava на пути к лучшему
По умолчанию

Мда.. у меня css и js отдаёт nginx который также можно настроить на сжатие контента, вот посему и не пойму этих извращений
Siava вне форума   Ответить с цитированием
Старый 02.02.2008, 08:19   #8
Специалист
 
Аватар для Kashey
 
Регистрация: 02.07.2007
Сообщений: 453
Вес репутации: 217
Kashey - очень-очень хороший человекKashey - очень-очень хороший человекKashey - очень-очень хороший человекKashey - очень-очень хороший человек
По умолчанию

1.Его можно настроить на опционое сжатие?
2.Он выставляет Expires на парулет "туда"?
3.Он сливает однотипные файлы вместе и делает им "min"?
__________________
Нужны новости? - На скане полмиллиона новостей. Всяко разных.
И как всегда это все ScanLog записывает
Kashey вне форума   Ответить с цитированием
Старый 02.02.2008, 12:56   #9
Эксперт
 
Аватар для seocore
 
Регистрация: 18.06.2007
Адрес: Картофель
Сообщений: 2,417
Вес репутации: 355
seocore - прекрасное будущееseocore - прекрасное будущееseocore - прекрасное будущееseocore - прекрасное будущееseocore - прекрасное будущееseocore - прекрасное будущееseocore - прекрасное будущееseocore - прекрасное будущееseocore - прекрасное будущееseocore - прекрасное будущееseocore - прекрасное будущее
По умолчанию

Цитата:
Сообщение от Kashey Посмотреть сообщение
1. Его можно настроить на опционое сжатие?
2. Он выставляет Expires на парулет "туда"?
3. Он сливает однотипные файлы вместе и делает им "min"?
1. Можно сжимать что угодно и какие угодно MIME-типы, разумеется также проверяется поддержка браузером gzip сжатия
2. А зачем на пару лет туда? - вы что пару лет не будете обновлять эти файлы? (на худой конец есть же E-Tag, который более корректен и надежен в данном случае)
3. Что мешает вам ручками объединить все .js и .css файлы?

вообще зачем такие заморочки? - достаточно всего одного удаленного .js (например от РСЯ), чтобы испортить всю "скорость" загрузки
seocore вне форума   Ответить с цитированием
Старый 02.02.2008, 13:33   #10
Специалист
 
Аватар для Kashey
 
Регистрация: 02.07.2007
Сообщений: 453
Вес репутации: 217
Kashey - очень-очень хороший человекKashey - очень-очень хороший человекKashey - очень-очень хороший человекKashey - очень-очень хороший человек
По умолчанию

РСЯ можно и в конце грузить
>2.зачем на пару лет туда? - вы что пару лет не будете обновлять эти файлы
Вы не читали что я написал - имя файла и есть частью E-Tag и при обновлении набора файлов( или самих файлов) меняется.
В вашем же случаю ВСЕГДА(ну ладно - часто, точнее это к тупому ИЕ не относиться) будет проверяться апдейт файлов.. Быстро конечно но зачем?
__________________
Нужны новости? - На скане полмиллиона новостей. Всяко разных.
И как всегда это все ScanLog записывает
Kashey вне форума   Ответить с цитированием
Ответ

Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Нужна прога для обновления файлов на FTP borodun Разработка и сопровождение сайтов 16 19.06.2008 10:16
Проблема с закачкой файлов с торрентов Psihadelic Курилка 5 15.06.2008 20:15


Часовой пояс GMT +3, время: 21:08.