Оптимизация часто показываемых страниц Александр Моисеев moiseyev@yandex-team.ru.

Презентация:



Advertisements
Похожие презентации
CSS Cascading Style Sheets. Типы стилей: 1. Стиль браузера 2. Стиль автора 3. Стиль пользователя.
Advertisements

Проф. В.К.Толстых, Технологии разработки Internet- приложений ASP.NET приложения – оптимизация скорости работы приложений Из цикла лекций.
CSS: основные понятия и особенности. Способы добавления стилей на Веб-страницу. Использование стилей при создании сайта.
Верстка сайтов Введение. Оглавление Основные понятия Тэги и элементы разметки Управление визуальным представлением документа Правила написания кода.
Интернет- технологии МИИГаИК. Указание XML-документов в ориентире на будущее
HTML (HyperText Markup Language) - Язык Разметки Гипертекста.
ПРОТОКОЛЫ HTTP. HTTP - HyperText Transfer Protocol Протокол уровня приложений Текущая версия HTTP/1.1.
Hypertext Transfer Protocol (HTTP) Протокол передачи гипертекста.
Лекция 9 Тема «Каскадные таблицы стилей » Преподаватель: Халелова Е. Н.
Powerpoint Templates Page 1 Язык разметки гипертекста HTML.
Форматирование текста на Web-странице Пока наша страница выглядит не слишком привлекательно: мелкий шрифт чёрного цвета на белом фоне. С помощью тэгов.
Web-узлы. Разработка и администрирование.. Часть 1. Web-технология.
Основы языка HTML (Hyper Text Markup Language – язык разметки гипертекста )
Материалы взяты из википедии. HTTP HTTP (англ. HyperText Transfer Protocol «протокол передачи гипертекста»)англ. гипертекста.
1 Лекция Протокол HTTP – основной транспорт Web. 2 Приложения, использующие HTTP u Клиентские (браузеры): »MS Internet Explorer »Netscape Communicator.
Основы HTML и CSS Ссылки и иллюстрации. Ссылки и иллюстрации: Механизмы адресации на ресурсы в Internet. Реализация механизма в языке HTML Создание гиперссылок.
OPTIMIZED COMPUTING Переносим нагрузку на клиент Николай Мациевский Parallels Online Marketing Director Снижаем нагрузку на сервер за счет клиентской оптимизации.
Какой тег является тегом перевода строки? 1.BR 2.TR 3.HR 4.I.
Язык HTML HyperText Markup Language Язык разметки гипертекста.
Погружение в HTML5 Гайдар Магдануров Microsoft HTML5 – что это?
Транксрипт:

Оптимизация часто показываемых страниц Александр Моисеев

Введение Главная страница и страница с результатами поиска Яндекса за последний месяц показывались 1,5 миллиарда раз. Очевидно, что такая посещаемая страница должна быть очень легкой, ведь пользователям комфортнее работать с быстро загружающимся ресурсом, а нам приятно экономить пользовательский трафик.

Пути оптимизации: Оптимизация разметки Оптимизация стилей Оптимизация скриптов Другие способы оптимизации

Оптимизация разметки 1. Использование HTML вместо XHTML Элементы, не требующие закрывающего тега, нужно писать без «/» – area, base, br, col, hr, img, input, link, meta, param Не указывать элементы body, head, html, tbody Не указывать закрывающие теги colgroup, dd, dt, li, option, p, td, tfoot, th, thead, tr В некоторых случаях возможно писать значения атрибутов без кавычек Не использовать пробел для разделения значений атрибутов, если значение взято в кавычки Атрибуты checked, selected, disabled писать без значений

2. Значения атрибутов по умолчанию Не использовать атрибуты, значения которых подразумевается по умолчанию: method="get", target="_self", type="text" Оптимизация разметки

3. Заменять мнемонические сущности на их представление Например, для документа в кодировке windows-1251 замена 109 сущностей на символ с кодом 160 уменьшает документ на 545 байт. Для кодировки windows-1251 можно, таким образом, заменить самые распространенные сущности:, —, «, » Оптимизация разметки

4. Вырезание из документа не значащих символов Переводы строк, незначащие пробелы и комментарии необходимо вырезать. Оптимизация разметки

5. Использование специально оптимизированной разметки вместо универсальной Часто в крупных проектах используются универсальные шаблоны, которые применяются на очень многих страницах. Как правило, это решения, в которых больше внимания уделено универсальности, а не размеру кода. Оптимизация разметки

Удобнее всего писать в шаблоне нормальный html, а оптимизацию производить над шаблоном, который будет выкладываться в production. Ваша разметка по прежнему будет оставаться валидной как в рамках HTML 4.01 Transitional, так и более жёсткого HTML 4.01 Strict. Оптимизация разметки

Оптимизация стилей 1.Очистить разметку от inline стилей, перенести их в css-файл 2.Давать именам классов короткие названия 3.Использовать более специфичные селекторы в css, нежели давать имена классов большому количеству элементов 4.Использовать один css-файл на странице/проекте 5.«Сжимать» css-файл 6.Оформлять правила css наиболее лаконично Для этих нужд можно использовать утилиту YUI Compressor color:#006600; -> color:#060; избавиться от rgb() в пользу #hex использовать, когда это уместно, сокращенные формы записи: background, border, font, margin, padding

Оптимизация скриптов 1.По возможности вынести все встроенные (embeded) и инлайновые (inline) скрипты в js-файл 2.Давать переменным и функциям по возможности короткие, но понятные названия 3.Использовать один js-файл на странице/проекте 4.«Сжимать» js-файлы Для этих нужд можно использовать утилиты JSMin, Dojo shrinksafe, Packer и YUI Compressor

Пример Бета верстки Используются «несжатые» project.css и project.js Бета проекта Используются «сжатые» _project.css и _project.js make - собирает файлы _project.css и _project.js на бете верстки make install - копирует собранные файлы на бету проекта Пример url(common.css); /* Header (begin) */.b-head a,.b-head.service.exit a { color:#000; }... Пример project.js include("global.js") include("common.js") function init(focus) {... }...

1. Оптимизация графики Необходимо осознанно выбирать графический формат. Количество цветов для изображений с фиксированной палитрой и степень сжатия для изображений с большим количеством цветов. Для оптимизация графики можно использовать программы Adobe Fireworks, Adobe Image Ready, GIMP и консольную программу optipng. Другие способы оптимизации

2. Объединение небольшиx картинок в один файл Если позволяет разметка, стоит объединять небольшие картинки в один файл и отрисовывать их как css background с разными значениями background-position Другие способы оптимизации

3. Ресурсы, которым не нужны куки, вынести в другой домен Очевидно, что картинкам (как и css и js-файлам) куки не нужны, поэтому, положив их в другой домен, мы дешевым способом экономим трафик пользователей. Другие способы оптимизации

Пример домен yandex.ru (ставятся куки) GET /i/blank.gif HTTP/1.1 Host: img.yandex.ru User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv: ) Gecko/ Firefox/ (Ubuntu-feisty) Accept: text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,im age/png,*/*;q=0.5 Accept-Language: ru-ru,ru;q=0.8,en-us;q=0.5,en;q=0.3 Accept-Encoding: gzip,deflate Accept-Charset: windows-1251,utf-8;q=0.7,*;q=0.7 Keep-Alive: 300 Connection: keep-alive Cookie: YX_HIDE_SPAMBOX=1; yabs- frequency=/1/xBqc0D41F1Tm9W3H0JnytIK0qG4dThic0D01F6Lg9G3G0IS7C2 G0q04ye3mV0D01FFXw9G3G0JpTs1y0q04yn74H0Cy1FERD9G3F0SSQ82O0 pm4kniibGCy1Gm6AGYP0pm770aFJ9K3F0GS1HWCb0Cy19z169W3C0Jp0FY O0om6yv2SO0Ci1VFpB9G390JmdhGi0n04yQwSZ0CG1NBwL6C340Vp___y0/ f0BH0GwC0G00/fGBH0GuG9pM15GSR3XE12Wa0; mail_tag=yandex.ru; YX_SEARCHPREFS=lang:all,family:,gamma:,numdoc:10,target:_blank,banners :1,search_form:,charset:,ton:1,shsd:,url:1,wstat:,t:2,hltitle:1,favicons:1,hltext:1,e xtradoc:,size:1,tose:1,relev:1,date:1,desc:sometimes; yandexuid= ; yafolder= %3A ; mesort=date; L=EF8fVwJ8f3oKUWEPYllyYVtde0tWQVd6MyclVwtYLnU4N3FZMih+IwUIKR8c HWMaYQMlITg+USUjHG1KNyF+Zg== de5458b48 17a01b9345b28a834ab8d; yandex_fio=boochie%20snoochie; yandex_login=snoogans; yandex_nickname=; yandex_mail=snoogans; Session_id= : : a1934 d6a7fa251d98db8e6250d1d93 If-Modified-Since: Thu, 09 Oct :42:05 GMT If-None-Match: " " Cache-Control: max-age=0 Другие способы оптимизации домен yandex.net (куки не ставятся) GET /i/blank.gif HTTP/1.1 Host: img.yandex.net User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv: ) Gecko/ Firefox/ (Ubuntu-feisty) Accept: text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,* /*;q=0.5 Accept-Language: ru-ru,ru;q=0.8,en-us;q=0.5,en;q=0.3 Accept-Encoding: gzip,deflate Accept-Charset: windows-1251,utf-8;q=0.7,*;q=0.7 Keep-Alive: 300 Connection: keep-alive If-Modified-Since: Thu, 09 Oct :42:05 GMT If-None-Match: " " Cache-Control: max-age=0

4. Включить кэширование статики на сервере Современные страницы содержат очень много подключаемых файлов: картинки, скрипты, стили... При первой загрузке страницы могут выполняться десятки запросов к серверу. Чтобы при следующих обращениях к странице редко изменяемые (статические) данные загружались из кеша браузера, необходимо применять кеширование. Время жизни файла в кеше браузера указывается с помощью заголовков Expires или Cache-Control (появился в HTTP 1.1). Другие способы оптимизации

Пример Другие способы оптимизации Expires: Thu, 15 Apr :00:00 GMT или Cache-Control: max-age=

5. Включить «зипование» html, css, js файлов на сервере При помощи плагина для Firefox – Live HTTP Headers ( можно посмотреть, отдает ли сервер «зипованные» данные Другие способы оптимизации

Пример Другие способы оптимизации В этом случае ответ сервера «зипуется» В этом случае ответ сервера НЕ «зипуется»

Благодарности Спасибо Александру Ермолаеву и Виталию Харисову за помощь в подготовке этого материала.

Александр Моисеев адрес: , Россия, Москва, ул. Самокатная д.1, стр. 21. телефон: +7 (495) факс: +7 (495) эл. почта: