Архивируем GZIP |
Расскажу еще один способ увеличить скорость загрузки странички. Пожалуй, этот способ является самым простым.
Все современные браузеры умеют распаковывать заархивированные html страницы. А проверенная статистика говорит, что 80-90% всех страничек передаются в сжатом виде. Значит - давайте отсылать пользователю заархивированные html-ки.
+ Из-за многочисленного повторения тегов, страничка отлично сжимается. В средем в 10 раз! Меньше размер - быстрее загрумся. Все просто
- Требуется чуть больше ресурсов сервера (собственно для архивации)
Мое личное мнение: сжатие в 10 раз компенсирует незначительную нагрузку на сервер. Так что я всегда применяю этот метод.
А как архивировать?
Есть 2 способа.
1й способ. Архивация самим скриптом. Дописываем ко всем своим css и js файлам расширение php (или еще какое нибудь, мне просто проще сделать пример с php) и вставляем след кусок кода:
//gzip me
if (substr_count($_SERVER['HTTP_ACCEPT_ENCODING'], 'gzip')) {
ob_start("ob_gzhandler");
} else {
ob_start();
}
2й способ. Заставляем веб сервер архивировать посылаемый компоненты
Второй способ более красивый и правильный. Как его реализовать - спросите у гугла, слишком много и долго писать. И еще, архивировать картинки, mp3, и прочие медиа нет смысла. Они уже заархивированы.
|
Еще оптимизация |
Кто знает, что такое Firebug? Кто знает, что такое YSlow? Если читатель не знает, то советую покопать интернет в поисках. С помощью этих инструментов я добился увеличения скорости загрузки своей самой тяжелой страницы с 7 - 10 секунд до 2 – 4.
Как подсказал мне YSlow, на моей страничке слишком много css-компонентов, попросту говоря картиночек. Проблема не в размере картинки, а в их количестве. Дело в том, что к каждой картинке браузер посылает отдельный http запрос на сервер. Например, такой:
GET /site/images/button.gif HTTP/1.1
Host: localhost
User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.1.6) Gecko/20091215 Ubuntu/9.10 (karmic) Firefox/3.5.6
Accept: image/png,image/*;q=0.8,*/*;q=0.5
Accept-Language: en-us,en;q=0.5
Accept-Encoding: gzip,deflate
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7
Keep-Alive: 300
Connection: keep-alive
Referer: http://localhost/site/style.css
Cookie: WRUID=0; show_filter=true; PHPSESSID=feb80f629f434419493967285c7967cb1
If-Modified-Since: Fri, 13 Nov 2009 07:40:38 GMT
If-None-Match: "2107f-2fe-4783bc6a5c980"
Cache-Control: max-age=0
Firebug показал, что мой сервер одновременно обрабатывает 5-7 запросов на картинки. Остальные ждут(!) в очереди.
Выход нашелся быстро. Использование css спрайтов. Что это такое? Спросите у гугла.
Метки: оптимизация firebug yslow |
Going live |
И настал тот день, когда Ваше творение увидят конечные пользователи. Наступил день, когда Вам так радостно и немного страшно. Даже если Вы матерый и опытный, проводили ежедневно всевозможные автоматические и ручные тесты, Вы уверены, что система работает на 5+ по пятибальной шкале – не было испытания живыми пользователемя в реальных полевых условиях. Нестоит недооценивать клинического идиотизма пользователей. Они найдут слабые места. Нестоит недооценивать юных хакеров, ведь искать уязвимости – модно.
Как минимизировать свои страхи по поводу живого испытания? Предлагаю пару инструментов:
Обратная связь в виде “Я нашел проблему на сайте!”, “Хочу предложить фичу!”.
Всегда держать под рукой телефон, лептоп, и выход в инет.
Если есть сомнения в каком-то элементе – не спешите с релизом. Отговаривайте заказчика, невключайте этот элемент.
Представте себя в роли атакующего сайт. Проведите конкурс среди своих друзей или сотрудников “Кто быстрее поломает систему”.
Метки: релиз тестирование |
Оптимизация скорости |
Метки: оптимизация strtotime() timestamp |
New! Now you can press this button and... |
Вот это вот new! должны быть красным цветом и можно жирным шрифтом, если надпись большая. Где-то так:
New! Мы добавили автоподсказки к окну поиска.
О чем это я? У всех хотя бы раз в жизни обновлялся софт. Часто или редко, такое встречается. А в скольких случаях, пользователь замечает разницу до и после обновления? Лично из моего опыта: 1% (это мой google chrome под linux, чуть ли не каждый день обновляется и новые фичи как правило заметны).
Вот к чему я веду. Сделали, что то новое - сфокуcируйте внимание пользователя. Тогда он подумает:
Ну ведь правда? Надпись прилепить 5 минут делов, а так приятно.
Даже на этапе разработки, когда нет пользователей. Есть один заказчик - он и есть первый и главный пользователь. Его внимание нужно фокусировать на свеженьком. И не только из-за пунктов перечисленных выше. Заказчик должен видеть над чем Вы работаете. Иначе он будет думать, что Вы бездельничаете. Увы. Но так часто бывает. И ничего не поделать.
Домашнее задание: как доказать заказчику, что нужен рефакторинг?
Метки: заказная разработка фичи new |
Быстро найти ошибку! |
Метки: заказчик поиск багов |
Дневник irismurdoc |
Обожаю вебдевелопмент и все что с этим связано. Об этом и буду писать: как граммотно кодить, как правильно управлять и планировать
|
Страницы: [1] Календарь |