Доклад для технологической конференции failoverconf.ru. Москва, 23 мая 2014.
Доступность современного онлайн-бизнеса 24/7 - это не только бесперебойная работа сайта, но и его удобство и работоспособность с мобильных устройств в условиях низкого качества связи.
Доля посетителей и покупателей, использующих мобильные устройства, стремительно увеличивается. Несмотря на это, мы практически не учитываем интересы мобильных пользователей при разработке или оптимизации сайтов и интернет-магазинов.
В докладе мы поговорим об ускорении client-side для мобильных устройств. Рассмотрим инструменты для измерения скорости загрузки и тестирования страниц в реальных «мобильных» условиях.
11. RTT – правда жизни
Round Trip Time!
время за которое сигнал проходит от
посетителя к серверу и обратно
12. Скорость света конечна, да
)
)
Москва Москва
)
)
Москва Германия
)
)
Москва Нидерланды
30-50 мс
70 мс
100 мс
13. Данные передаются в рамках окна
• Для открытия окна требуется 1 RTT
)
• Чем стабильнее канал, тем больше размер окна,
выше скорость передачи
)
• Если есть потери - размер окна уменьшается,
скорость передачи падает катастрофически
1 2 3 4
… N
14. Пример
Html-cтраница размером 30720 байт
)
1 сегмент: 1400 байт
)
1 окно: 9 сегментов или 12600 байт
)
Для загрузки страницы потребуется 3 окна (30400/12600 ~ 3).
)
Минимальное время загрузки в этих условиях: 4 RTT
1RTT (соединение) + 3RTT (данные)
35. Уменьшение изображений
• Не уменьшать картинки тегами в html
• Сохранять в правильном формате
• Сжимать посильнее
• Lazy Loading!
)
)
• УДАЛЯТЬ служебную информацию из
картинок!
40. webpagetest.org - для декстопа :(
Превосходный инструмент:)
• Подробнейшая аналитика
по ходу загрузки конента
• Огромное количество
возможностей для проф.
использования
• Бесплатный!
• НО проверяет сайты на
декстопных браузерах
41. Веб-сервис: mobitest.akamai.com
• Проверка с различных
мобильных устройств
• Бесплатный!
• НО точка проверки в США,
что означает большие
задержки (RTT) и
искажение данных
44. Собрать приложение для iPhone
BzAgent)
App для iPhone:
https://github.com/6a68/
mobitest-agent
• Собрать в Xcode
• Запустить в эмуляторе
• При наличии dev-аккаунта в
apple - установить на
реальный девайс.
45. Развернуть приватную ноду
webpagetest.org
Нода нужна для визуализации
результатов загрузки из
мобильного приложения.
Документация:
https://sites.google.com/a/
webpagetest.org/docs/private-
instances