Разгоняем все, что движется Оптимизация времени загрузки сайта: проблемы и решения Мациевский Николай, Acronis webo.in1 / 23.

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



Advertisements
Похожие презентации
Разгони свой сайт Лекция 3: Кэширование Мациевский Николай 1 / 19 webo.in.
Advertisements

Разгони свой сайт Лекция 1: Особенности клиентской оптимизации Мациевский Николай 1 / 23 webo.in.
Разгони свой сайт Лекция 7: «Ненавязчивый» JavaScript Мациевский Николай 1 / 22 webo.in.
Разгони свой сайт Лекция 9: Практическое приложение Мациевский Николай 1 / 27 webo.in.
Зашифруй свой сайт Клиентская оптимизация в информационной безопасности Мациевский Николай, Parallels 1 / 14 webo.in / webo.name.
OPTIMIZED COMPUTING Переносим нагрузку на клиент Николай Мациевский Parallels Online Marketing Director Снижаем нагрузку на сервер за счет клиентской оптимизации.
Разгони свой сайт Лекция 5: Параллельные загрузки Мациевский Николай 1 / 27 webo.in.
Разгони свой сайт Лекция 8: Быстрый JavaScript Мациевский Николай 1 / 24 webo.in.
Разгони свой сайт Лекция 4: Объединение файлов Мациевский Николай 1 / 22 webo.in.
Разгоняем CMS: дешево и сердито Оптимизация времени загрузки сайта Мациевский Николай, Acronis 1 / 8 webo.in / webo.name.
Скорость имеет значение Проблема медленных сайтов реальна Мациевский Николай, Web Optimizator 1 / 19 webo.in / webo.name.
Разгони свой сайт Лекция 6: Оптимизация CSS Мациевский Николай 1 / 19 webo.in.
1. Как измерить скорость веба?
Быстрый сайт хороший сайт Скорость как основной критерий качества интернет-магазина Мациевский Николай, WEBO 1 / 13
Проверяем качество сайтов Ключевые моменты оценки качества веб-проектов Мациевский Николай, Web Optimizator 1 / 16 webo.in / webo.name.
VML, SVG, Canvas Вчера, сегодня, завтра.
Проф. В.К.Толстых, Технологии разработки Internet- приложений ASP.NET приложения – оптимизация скорости работы приложений Из цикла лекций.
Все о скорости сайтов Юрий Устинов Русоникс Москва, 20 июня 2013.
Отладка программ на JavaScript. FireBug.. FireBug – дополнение к FireFox Возможности: Анализ html-кода страницы Вычисление CSS Работа с JavaScript Анализ.
Вёрстка для iPhone 16 декабря, 2008, Москва. Продано более
Транксрипт:

Разгоняем все, что движется Оптимизация времени загрузки сайта: проблемы и решения Мациевский Николай, Acronis webo.in1 / 23

Уменьшение объема данных – minify/gzip Уменьшение числа запросов – CSS sprites Кеширование Параллельные загрузки Оптимизация JavaScript 2 / 23webo.in Основные направления технологические решения

3 базовых типа страниц: «Одноразовые»: 99,9% новых посещений Все-в-одном Для непостоянной аудитории : от 70% новых CSS Sprites CSS/JS сжатие и минимизация Для постоянной аудитории: менее 70% новых Кеширование «Ненавязчивый» JavaScript 3 / 23webo.in Основные направления посещаемость как критерий

Стили и скрипты Сжатие CSS Обфускация JavaScript minify / mod_gzip / mod_deflate Архивировать «на лету»… … или статически? Сжатие изображений PNG против GIF: кто лучше? Семантическая верстка Уменьшение объема данных основные направления 4 / 23webo.in

Сжатие CSS CSS Tidy gzip выигрыш: до 85% Сжатие JavaScript Dean Edwards Packer YUI Compressor + gzip выигрыш: до 85% 5 / 23webo.in Уменьшение объема данных стили и скрипты

Apache 2 + mod_deflate = gzip поддержка: 99,5% выигрыш: 70-80% Статическое сжатие CSS/JavaScript + gzip Safari or not Safari? Поддержка браузеров прокси и «старые» браузеры 6 / 23webo.in Уменьшение объема данных архивирование

Portable Network Graphics (PNG) поддержка (без альфа-канала): 99,5% улучшенный алгоритм сжатия альфа-канал через ImageAlphaLoader выигрыш: 20-40% Graphics Interchange Format (GIF) анимированные изображения JPEG jpegtran: уменьшение без потери качества 7 / 23webo.in Уменьшение объема данных оптимизация изображений

Преимущества нет «распорок» кеширование стилей лучше выглядит без стилей Недостатки ряд проблем с CSS Sprites XHTML «весит» больше HTML Выход: HTML POSH Общий выигрыш: 20-40% 8 / 23webo.in Уменьшение объема данных семантическая верстка

Стили и скрипты CSS: 1 файл (IE5.5+) JavaScript: комбинированный window.onload Объединение изображений CSS Sprites Image Map 1 HTML хотя iframe могут ускорить загрузку Общий выигрыш: 30-80% 9 / 23webo.in Уменьшение числа запросов основные направления

CSS-файлы объединение в 1 файл print { … }.. или даже включение в HTML JavaScript-файлы влияют на отображение страницы объединение в 1 файл … … или загрузка в самом конце (window.onload) … или включение в HTML Общий выигрыш: 10-30% 10 / 23webo.in Уменьшение числа запросов стили и скрипты

CSS Sprites 5 групп файлов: анимация и разные повторения поддержка браузерами: 99,9% rollover-эффекты все-в-одном BackgroundImageCache Image Map когда много маленьких картинок Общий выигрыш: 70-80% 11 / 23webo.in Уменьшение числа запросов объединение изображений

Объединяем HTML/CSS/JS yandex.ru / ya.ru / yahoo.com Изображения через date:image поддержка браузерами: 30% (все, кроме IE) хаки для IE (* html, *:first-child+html,

Размер HTML: 2-10% Cache-Control max-age, private сброс кеша GET-строкой статические ресурсы ETag когда срок кеша истек проблемы репликации Общий выигрыш: до 100% 13 / 23webo.in Кеширование основные направления

Несколько «легких» серверов (alias) Хеш-функция для имен файлов Балансировка по нагрузке/географии Балансировка на клиенте Не больше 4 хостов Общий выигрыш: до 85% 14 / 23webo.in Параллельные загрузки дважды два – быстрее!

Система JavaScript-пакетов – загружаем только необходимые Первоначальный вид страницы – формируем на сервере «Быстрый» window.onload – DOMContentLoaded / defer Сайт должен работать и без JavaScript – визуальное ускорение при загрузке 15 / 23webo.in Оптимизация JavaScript загрузка «по требованию»

Уменьшаем число DOM-элементов – создавайте локальные копии узлов – обновляйте дерево большими фрагментами Обработчики событий – создавайте для родительских элементов – удаляйте для избежания утечек памяти в IE Используйте CSS, а не JavaScript Избегайте CSS expressions / filters 16 / 23webo.in Оптимизация JavaScript DOM и события

Избегайте глобальных переменных – кешируйте в локальные переменные: array.length var a=array.length // globarVar var localVar = globalVar Избегайте eval + setTimeout / setInterval – используйте анонимные функции Используйте элементарные функции – myArray.push(value) myArray[idx++]=value Обновляйте UI в случае «тяжелых» вычислений 17 / 23webo.in Оптимизация JavaScript полезные советы

Кеширование: до 100% Параллельные загрузки: до 85% CSS Sprites: до 60% Слияние + minify + gzip: до 40% Оптимизация изображений: до 30% Оптимизация JavaScript: до 20% Семантическая верстка: до 10% 18 / 23webo.in Действенность методов что лучше?

Google: на 500 мс медленнее = 20% уменьшение трафика Amazon: на 100 мс медленнее = 1% уменьшение продаж Acronis: ускорение в 5 раз = 5% увеличение продаж ускорение в 2,8 раза ускорение в 2,6 раза 19 / 23webo.in Действенность методов ROI

Firefox + Firebug + Yslow – лучший в своем классе – оценка оптимизации – практические советы IE + AOL Pagetest – диаграмма загрузки для IE IE Leak Detector aka Drip – нахождение утечек памяти для IE 20 / 23webo.in Обзор инструментов системные приложения

JsUnit – тестирование и отладка AjaxView – проксирование Ajax-запросов JsLex – профессиональное профилирование YUI Profiler – время выполнения функций Лучший тестер – пользователь! 21 / 23webo.in Обзор инструментов профилирование JavaScript

– подробный анализ узких мест при загрузке OctaGate SiteTimer / Pingdom Tools – диаграмма загрузки сайта Практические советы от Yahoo! webo.in – анализ скорости загрузки / история проверок – диаграмма загрузки сайта (для 4 браузеров) – более 40 статей и докладов по оптимизации 22 / 23webo.in Обзор инструментов онлайн-инструменты

Спасибо. Вопросы? Разгоняем все, что движется Мациевский Николай, Acronis webo.in23 / 23