SlideShare ist ein Scribd-Unternehmen logo
1 von 29
Живые сайты

Рябко Дмитрий
Что есть интерактивность?
Use case
• Сайт похож на Desktop приложение
• Реагирует на события мгновенно (до 200мс)
• Стандартное поведение браузера не нарушено
Целевая аудитория

•   Интернет магазины
•   Соц сети
•   Сайты знакомств
•   Корпоративные сайты
•   Браузерные игры
Плюсы интерактивности
• Сериализированные данные имеют
  меньший объем
• Постоянное соединение, не делаем лишние
  запросы
• Некоторые изменения HTML можно
  распараллелить
• Заранее загрузить следующие шаги
• Снизить время реакции до 200мс
Интернет сервис
Use case для клиента
•   Правильные ссылки в адресной строке
•   Внутренним ссылки работают
•   Отправка формы
•   Кнопка "Назад" работает
•   Курсор загрузки страницы
•   Синхронизация
•   Хранение состояния
Архитектура сервера
• Отдельные сервисы для бизнес логики
• Протокол общения между компонентами
• Кроссплатформенный формат HTML
  шаблонов
• JSON интерфейс может быть адаптирован
  под API
• Брокер сообщений для уведомления
  пользователей
Клиет - Сборка
• Ant, Maven, Make
• >> или copy
• Минифицирование
  – Google Closure
  – YUI Compressor
  – UglifyJS
  – Webassets
jQuery код?
Клиент – код на CoffeScript
Coffescript   JavaScript
Клиент - абстракции



•   Модель
•   Контроллер-Представление
•   Маршрутизатор
•   Коллекция
Клиент - библиотеки
• Blackbone.js
• Spine.js
• ember.js
Клиент – обработчики событий
• Представления
  – Пользовательское
  – Логическое
  – Навигации
  – Интерактивность
Клиент – общее представление
• Переопределяем внутренний href
• Отправка формы
   – Автосохранение
   – Запрос
• Отмена стандартной реакции браузера
Клиент – адресная строка
• HTML5 History API (pushState)
• Изменения якоря ссылки после #
• Трюки с iframe и setInterval


Backbone.history.start ()
Подкласс Backbone.Router



• Ссылка внутренняя?
• return false;
• router.navigate(href.substring(1), {trigger: true, replace: true})
Клиент – адресная строка, что еще?


Обработка Shift, Ctrl + click
    jQuery (button, shiftkey, metakey)
    window.open()
Курсор ожидания
    CSS cursor: style="cursor: wait;"
    Анимированный favicon.ico
Клиент – синхронизация состояния
Model.fetch() через setInterval()
Постоянное соединение - Транспорт
•   WebSocket
•   HTTP Streaming
•   HTTP Polling
•   Adobe Flash
Транспорт – Абстракции
• Метод для отправки сообщений
• Обработчик получения сообщений
• Обработчик установления и разрыва
  соединения
• Натройки для клиента при инициации
  соединения
Транспорт - Библиотеки
• socket.io
• SockJS
• Коммерческие библиотеки в облаках

Сервер
• Netty, Jetty for Java
• Tornado for Python
Socket.IO
    Клиент                 Сервер - Tornado




Отправить сообщение
Использование шаблонов
Рендеринг - MUSTACHE
A typical Mustache template:
Hello {{name}}
You have just won ${{value}}! {{#in_ca}}
Well, ${{taxed_value}}, after taxes. {{/in_ca}}
Given the following hash:
{        "name": "Chris",
         "value": 10000,
         "taxed_value": 10000 - (10000 * 0.4),
         "in_ca": true
}
Will produce the following:
Hello Chris You have just won $10000!
Well, $6000.0, after taxes.
Сервер – REST API
• Java – Restlet, Apache Wink, Jersey
• Python - web.py, Flask and Bottle
Сервер – брокер сообщений
• Протокол AMQP (Advanced Message
  Queueing Protocol)
• Реализация RabbitMQ

Попроще?
    Тогда Redis
RabbitMQ – точка обмена
• Отправка всем (fanout) - (publish-subscribe)




• Прямая (direct) - (message queue)
• Тематическая (topic) – (pattern)
RabbitMQ - сценарии
• Выполнение длительных операций
• События в реальном времени
  – Постоянное соединение
  – Точка обмена – отправить всем
Спасибо за внимание!




     Вопросы?

Weitere ähnliche Inhalte

Was ist angesagt?

Петренко Дмитрий. Как построить серверное обеспечение для pbn без футпринтов ...
Петренко Дмитрий. Как построить серверное обеспечение для pbn без футпринтов ...Петренко Дмитрий. Как построить серверное обеспечение для pbn без футпринтов ...
Петренко Дмитрий. Как построить серверное обеспечение для pbn без футпринтов ...Дмитрий Шахов
 
2015 09-05 02 Сергей Сорокин. Обзор и анализ мобильного backend сервиса
2015 09-05 02 Сергей Сорокин. Обзор и анализ мобильного backend сервиса2015 09-05 02 Сергей Сорокин. Обзор и анализ мобильного backend сервиса
2015 09-05 02 Сергей Сорокин. Обзор и анализ мобильного backend сервисаОмские ИТ-субботники
 
Web весна 2013 лекция 1
Web весна 2013 лекция 1Web весна 2013 лекция 1
Web весна 2013 лекция 1Technopark
 
Как мы строили аналитическую платформу на несколько миллиардов событии в месяц
Как мы строили аналитическую платформу на несколько миллиардов событии в месяцКак мы строили аналитическую платформу на несколько миллиардов событии в месяц
Как мы строили аналитическую платформу на несколько миллиардов событии в месяцMikhail Tabunov
 
тарифный план битрикс дмитрий росляков
тарифный план битрикс   дмитрий росляковтарифный план битрикс   дмитрий росляков
тарифный план битрикс дмитрий росляковMedia Gorod
 
Облачные решения на платформе IO
Облачные решения на платформе IOОблачные решения на платформе IO
Облачные решения на платформе IOOntheIO
 
1 2 2_1_c-bitrix_kuleshov
1 2 2_1_c-bitrix_kuleshov1 2 2_1_c-bitrix_kuleshov
1 2 2_1_c-bitrix_kuleshovelenae00
 
01 server definition
01 server definition01 server definition
01 server definitionmcroitor
 
Ускоряем Wordpress: кеширование, CDN, Varnish Cache
Ускоряем Wordpress: кеширование, CDN, Varnish CacheУскоряем Wordpress: кеширование, CDN, Varnish Cache
Ускоряем Wordpress: кеширование, CDN, Varnish CacheIgor Sazonov
 
Стажировка-2014, занятие 8. Общая архитектура web-приложений, web frameworks
Стажировка-2014, занятие 8. Общая архитектура web-приложений, web frameworksСтажировка-2014, занятие 8. Общая архитектура web-приложений, web frameworks
Стажировка-2014, занятие 8. Общая архитектура web-приложений, web frameworks7bits
 
"High load в условиях ограниченных ресурсов", Олег Бунин
"High load в условиях ограниченных ресурсов", Олег Бунин"High load в условиях ограниченных ресурсов", Олег Бунин
"High load в условиях ограниченных ресурсов", Олег Бунинit-people
 
Frontendlab: Фреймворк Duranda js - Виктор Сотов
Frontendlab: Фреймворк Duranda js  - Виктор СотовFrontendlab: Фреймворк Duranda js  - Виктор Сотов
Frontendlab: Фреймворк Duranda js - Виктор СотовGeeksLab Odessa
 
Юрий Буянов «Архитектура Goozy»
Юрий Буянов «Архитектура Goozy»Юрий Буянов «Архитектура Goozy»
Юрий Буянов «Архитектура Goozy»e-Legion
 
Lesson1
Lesson1Lesson1
Lesson1jinol
 
Drupal Highload - Klera Vilenskaya
Drupal Highload - Klera VilenskayaDrupal Highload - Klera Vilenskaya
Drupal Highload - Klera VilenskayaAlex Ilyin
 
опыт Clickberry.com стартап на drupal в облаке павел загор
опыт Clickberry.com   стартап на drupal в облаке павел загоропыт Clickberry.com   стартап на drupal в облаке павел загор
опыт Clickberry.com стартап на drupal в облаке павел загорdrupalconf
 
API в SAAS, с облаком и без: ресурсы, SLA, балансировка, расширяемость
API в SAAS, с облаком и без: ресурсы, SLA, балансировка, расширяемостьAPI в SAAS, с облаком и без: ресурсы, SLA, балансировка, расширяемость
API в SAAS, с облаком и без: ресурсы, SLA, балансировка, расширяемостьEatDog
 
72 - Spring. Создание абстрактного уровня. Разбор д/з
72 - Spring. Создание абстрактного уровня. Разбор д/з72 - Spring. Создание абстрактного уровня. Разбор д/з
72 - Spring. Создание абстрактного уровня. Разбор д/зRoman Brovko
 
Client optimization drupal
Client optimization drupalClient optimization drupal
Client optimization drupalYury Glushkov
 

Was ist angesagt? (19)

Петренко Дмитрий. Как построить серверное обеспечение для pbn без футпринтов ...
Петренко Дмитрий. Как построить серверное обеспечение для pbn без футпринтов ...Петренко Дмитрий. Как построить серверное обеспечение для pbn без футпринтов ...
Петренко Дмитрий. Как построить серверное обеспечение для pbn без футпринтов ...
 
2015 09-05 02 Сергей Сорокин. Обзор и анализ мобильного backend сервиса
2015 09-05 02 Сергей Сорокин. Обзор и анализ мобильного backend сервиса2015 09-05 02 Сергей Сорокин. Обзор и анализ мобильного backend сервиса
2015 09-05 02 Сергей Сорокин. Обзор и анализ мобильного backend сервиса
 
Web весна 2013 лекция 1
Web весна 2013 лекция 1Web весна 2013 лекция 1
Web весна 2013 лекция 1
 
Как мы строили аналитическую платформу на несколько миллиардов событии в месяц
Как мы строили аналитическую платформу на несколько миллиардов событии в месяцКак мы строили аналитическую платформу на несколько миллиардов событии в месяц
Как мы строили аналитическую платформу на несколько миллиардов событии в месяц
 
тарифный план битрикс дмитрий росляков
тарифный план битрикс   дмитрий росляковтарифный план битрикс   дмитрий росляков
тарифный план битрикс дмитрий росляков
 
Облачные решения на платформе IO
Облачные решения на платформе IOОблачные решения на платформе IO
Облачные решения на платформе IO
 
1 2 2_1_c-bitrix_kuleshov
1 2 2_1_c-bitrix_kuleshov1 2 2_1_c-bitrix_kuleshov
1 2 2_1_c-bitrix_kuleshov
 
01 server definition
01 server definition01 server definition
01 server definition
 
Ускоряем Wordpress: кеширование, CDN, Varnish Cache
Ускоряем Wordpress: кеширование, CDN, Varnish CacheУскоряем Wordpress: кеширование, CDN, Varnish Cache
Ускоряем Wordpress: кеширование, CDN, Varnish Cache
 
Стажировка-2014, занятие 8. Общая архитектура web-приложений, web frameworks
Стажировка-2014, занятие 8. Общая архитектура web-приложений, web frameworksСтажировка-2014, занятие 8. Общая архитектура web-приложений, web frameworks
Стажировка-2014, занятие 8. Общая архитектура web-приложений, web frameworks
 
"High load в условиях ограниченных ресурсов", Олег Бунин
"High load в условиях ограниченных ресурсов", Олег Бунин"High load в условиях ограниченных ресурсов", Олег Бунин
"High load в условиях ограниченных ресурсов", Олег Бунин
 
Frontendlab: Фреймворк Duranda js - Виктор Сотов
Frontendlab: Фреймворк Duranda js  - Виктор СотовFrontendlab: Фреймворк Duranda js  - Виктор Сотов
Frontendlab: Фреймворк Duranda js - Виктор Сотов
 
Юрий Буянов «Архитектура Goozy»
Юрий Буянов «Архитектура Goozy»Юрий Буянов «Архитектура Goozy»
Юрий Буянов «Архитектура Goozy»
 
Lesson1
Lesson1Lesson1
Lesson1
 
Drupal Highload - Klera Vilenskaya
Drupal Highload - Klera VilenskayaDrupal Highload - Klera Vilenskaya
Drupal Highload - Klera Vilenskaya
 
опыт Clickberry.com стартап на drupal в облаке павел загор
опыт Clickberry.com   стартап на drupal в облаке павел загоропыт Clickberry.com   стартап на drupal в облаке павел загор
опыт Clickberry.com стартап на drupal в облаке павел загор
 
API в SAAS, с облаком и без: ресурсы, SLA, балансировка, расширяемость
API в SAAS, с облаком и без: ресурсы, SLA, балансировка, расширяемостьAPI в SAAS, с облаком и без: ресурсы, SLA, балансировка, расширяемость
API в SAAS, с облаком и без: ресурсы, SLA, балансировка, расширяемость
 
72 - Spring. Создание абстрактного уровня. Разбор д/з
72 - Spring. Создание абстрактного уровня. Разбор д/з72 - Spring. Создание абстрактного уровня. Разбор д/з
72 - Spring. Создание абстрактного уровня. Разбор д/з
 
Client optimization drupal
Client optimization drupalClient optimization drupal
Client optimization drupal
 

Andere mochten auch

Плохие методы продвижения сайта, Екатерины Гладких, лекция в Школе вебмастеро...
Плохие методы продвижения сайта, Екатерины Гладких, лекция в Школе вебмастеро...Плохие методы продвижения сайта, Екатерины Гладких, лекция в Школе вебмастеро...
Плохие методы продвижения сайта, Екатерины Гладких, лекция в Школе вебмастеро...Yandex
 
Основные принципы индексирования сайта, Александр Смирнов, лекция в Школе веб...
Основные принципы индексирования сайта, Александр Смирнов, лекция в Школе веб...Основные принципы индексирования сайта, Александр Смирнов, лекция в Школе веб...
Основные принципы индексирования сайта, Александр Смирнов, лекция в Школе веб...Yandex
 
Dima maksimov
Dima maksimovDima maksimov
Dima maksimovyarulet
 
Морфологический анализатор PC-KIMMO
Морфологический анализатор PC-KIMMOМорфологический анализатор PC-KIMMO
Морфологический анализатор PC-KIMMOArtem Lukanin
 
Иван Ямщиков, Яндекс
Иван Ямщиков, ЯндексИван Ямщиков, Яндекс
Иван Ямщиков, ЯндексYandex
 
Внутреняя оптимизация
Внутреняя оптимизацияВнутреняя оптимизация
Внутреняя оптимизацияprmegaindex
 
20131210прохоренков
20131210прохоренков20131210прохоренков
20131210прохоренковYandex
 
Иван Ямщиков — Социальная экономика. Как_дружба_с_графами_может_помочь_вашему...
Иван Ямщиков — Социальная экономика. Как_дружба_с_графами_может_помочь_вашему...Иван Ямщиков — Социальная экономика. Как_дружба_с_графами_может_помочь_вашему...
Иван Ямщиков — Социальная экономика. Как_дружба_с_графами_может_помочь_вашему...Yandex
 
Кейс от Studio f1: интернет-магазин антикварной мебели
Кейс от Studio f1: интернет-магазин антикварной мебелиКейс от Studio f1: интернет-магазин антикварной мебели
Кейс от Studio f1: интернет-магазин антикварной мебелиНарижный Денис
 
Instrukcija
InstrukcijaInstrukcija
Instrukcijaaivenkov
 
повышение продаж
повышение продажповышение продаж
повышение продажprmegaindex
 
методические рекомендации_2_часть
методические рекомендации_2_частьметодические рекомендации_2_часть
методические рекомендации_2_частьAlexander Shapovalov
 
Методы повышения Ctr (микроформаты)
Методы повышения Ctr (микроформаты)Методы повышения Ctr (микроформаты)
Методы повышения Ctr (микроформаты)Fedotov Alex
 

Andere mochten auch (20)

Плохие методы продвижения сайта, Екатерины Гладких, лекция в Школе вебмастеро...
Плохие методы продвижения сайта, Екатерины Гладких, лекция в Школе вебмастеро...Плохие методы продвижения сайта, Екатерины Гладких, лекция в Школе вебмастеро...
Плохие методы продвижения сайта, Екатерины Гладких, лекция в Школе вебмастеро...
 
Основные принципы индексирования сайта, Александр Смирнов, лекция в Школе веб...
Основные принципы индексирования сайта, Александр Смирнов, лекция в Школе веб...Основные принципы индексирования сайта, Александр Смирнов, лекция в Школе веб...
Основные принципы индексирования сайта, Александр Смирнов, лекция в Школе веб...
 
Dima maksimov
Dima maksimovDima maksimov
Dima maksimov
 
up
upup
up
 
Морфологический анализатор PC-KIMMO
Морфологический анализатор PC-KIMMOМорфологический анализатор PC-KIMMO
Морфологический анализатор PC-KIMMO
 
1
11
1
 
Иван Ямщиков, Яндекс
Иван Ямщиков, ЯндексИван Ямщиков, Яндекс
Иван Ямщиков, Яндекс
 
Внутреняя оптимизация
Внутреняя оптимизацияВнутреняя оптимизация
Внутреняя оптимизация
 
cjdk
cjdkcjdk
cjdk
 
112
112112
112
 
-
--
-
 
usereto
useretousereto
usereto
 
20131210прохоренков
20131210прохоренков20131210прохоренков
20131210прохоренков
 
Иван Ямщиков — Социальная экономика. Как_дружба_с_графами_может_помочь_вашему...
Иван Ямщиков — Социальная экономика. Как_дружба_с_графами_может_помочь_вашему...Иван Ямщиков — Социальная экономика. Как_дружба_с_графами_может_помочь_вашему...
Иван Ямщиков — Социальная экономика. Как_дружба_с_графами_может_помочь_вашему...
 
Кейс от Studio f1: интернет-магазин антикварной мебели
Кейс от Studio f1: интернет-магазин антикварной мебелиКейс от Studio f1: интернет-магазин антикварной мебели
Кейс от Studio f1: интернет-магазин антикварной мебели
 
Instrukcija
InstrukcijaInstrukcija
Instrukcija
 
повышение продаж
повышение продажповышение продаж
повышение продаж
 
методические рекомендации_2_часть
методические рекомендации_2_частьметодические рекомендации_2_часть
методические рекомендации_2_часть
 
Методы повышения Ctr (микроформаты)
Методы повышения Ctr (микроформаты)Методы повышения Ctr (микроформаты)
Методы повышения Ctr (микроформаты)
 
fg
fgfg
fg
 

Ähnlich wie живые сайты

Гетерогенные сервисы для highload-проектов на примере Imhonet.ru и 4talk.im, ...
Гетерогенные сервисы для highload-проектов на примере Imhonet.ru и 4talk.im, ...Гетерогенные сервисы для highload-проектов на примере Imhonet.ru и 4talk.im, ...
Гетерогенные сервисы для highload-проектов на примере Imhonet.ru и 4talk.im, ...Ontico
 
Клиентские приложения под нагрузкой, Андрей Смирнов
Клиентские приложения под нагрузкой, Андрей СмирновКлиентские приложения под нагрузкой, Андрей Смирнов
Клиентские приложения под нагрузкой, Андрей СмирновOntico
 
Клиентские приложения под нагрузкой (HighLoad 2014)
Клиентские приложения под нагрузкой (HighLoad 2014)Клиентские приложения под нагрузкой (HighLoad 2014)
Клиентские приложения под нагрузкой (HighLoad 2014)Andrey Smirnov
 
05 razrabotka pod insales
05 razrabotka pod insales05 razrabotka pod insales
05 razrabotka pod insalesSokolov Artyom
 
Разгоняем ASP.NET Core / Илья Вербицкий (WebStoating s.r.o.)
Разгоняем ASP.NET Core / Илья Вербицкий (WebStoating s.r.o.)Разгоняем ASP.NET Core / Илья Вербицкий (WebStoating s.r.o.)
Разгоняем ASP.NET Core / Илья Вербицкий (WebStoating s.r.o.)Ontico
 
Решения сообщества для SharePoint
Решения сообщества для SharePointРешения сообщества для SharePoint
Решения сообщества для SharePointVitaly Baum
 
Дизайн REST API для высокопроизводительных систем / Александр Лебедев (Новые ...
Дизайн REST API для высокопроизводительных систем / Александр Лебедев (Новые ...Дизайн REST API для высокопроизводительных систем / Александр Лебедев (Новые ...
Дизайн REST API для высокопроизводительных систем / Александр Лебедев (Новые ...Ontico
 
Cache administration tool report - rus-1
Cache administration tool   report - rus-1Cache administration tool   report - rus-1
Cache administration tool report - rus-1ivanshmidt
 
Как превратить приложение в платформу
Как превратить приложение в платформуКак превратить приложение в платформу
Как превратить приложение в платформуVadim Kruchkov
 
API плюс толстый клиент – новая парадигма веб-разработки? / Андрей Лебедев (Г...
API плюс толстый клиент – новая парадигма веб-разработки? / Андрей Лебедев (Г...API плюс толстый клиент – новая парадигма веб-разработки? / Андрей Лебедев (Г...
API плюс толстый клиент – новая парадигма веб-разработки? / Андрей Лебедев (Г...Ontico
 
Drupal и мобильные устройства, Комелин Константин
Drupal и мобильные устройства, Комелин КонстантинDrupal и мобильные устройства, Комелин Константин
Drupal и мобильные устройства, Комелин КонстантинPVasili
 
Антон Киршанов — Особенности архитектуры Single Page Application
Антон Киршанов — Особенности архитектуры Single Page Application Антон Киршанов — Особенности архитектуры Single Page Application
Антон Киршанов — Особенности архитектуры Single Page Application Yandex
 
Изоморфный JavaScript — будущее уже здесь
Изоморфный JavaScript — будущее уже здесьИзоморфный JavaScript — будущее уже здесь
Изоморфный JavaScript — будущее уже здесьCodeFest
 
разработка Metro style приложений
разработка Metro style приложенийразработка Metro style приложений
разработка Metro style приложенийОлег Винников
 
доклад на вмк 15.10.2015
доклад на вмк 15.10.2015доклад на вмк 15.10.2015
доклад на вмк 15.10.2015Alexandr Petrov
 
02 - Web-технологии. Web-клиенты
02 - Web-технологии. Web-клиенты02 - Web-технологии. Web-клиенты
02 - Web-технологии. Web-клиентыRoman Brovko
 
YuryByyanov (e-legion) @ CodeCamp2011
YuryByyanov (e-legion) @ CodeCamp2011YuryByyanov (e-legion) @ CodeCamp2011
YuryByyanov (e-legion) @ CodeCamp2011CodeCamp
 
Как мы разрабатываем новый фронтенд / Филипп Нехаев (Tinkoff.ru)
Как мы разрабатываем новый фронтенд / Филипп Нехаев (Tinkoff.ru)Как мы разрабатываем новый фронтенд / Филипп Нехаев (Tinkoff.ru)
Как мы разрабатываем новый фронтенд / Филипп Нехаев (Tinkoff.ru)Ontico
 
Система обработки бизнес-логики server-side приложения на Groovy
Система обработки бизнес-логики server-side приложения на GroovyСистема обработки бизнес-логики server-side приложения на Groovy
Система обработки бизнес-логики server-side приложения на GroovyRegn
 
Cloud APIs. Обзор API западных провайдеров и API Scalaxy (Нат Гаджибалаев)
Cloud APIs. Обзор API западных провайдеров и API Scalaxy (Нат Гаджибалаев)Cloud APIs. Обзор API западных провайдеров и API Scalaxy (Нат Гаджибалаев)
Cloud APIs. Обзор API западных провайдеров и API Scalaxy (Нат Гаджибалаев)Ontico
 

Ähnlich wie живые сайты (20)

Гетерогенные сервисы для highload-проектов на примере Imhonet.ru и 4talk.im, ...
Гетерогенные сервисы для highload-проектов на примере Imhonet.ru и 4talk.im, ...Гетерогенные сервисы для highload-проектов на примере Imhonet.ru и 4talk.im, ...
Гетерогенные сервисы для highload-проектов на примере Imhonet.ru и 4talk.im, ...
 
Клиентские приложения под нагрузкой, Андрей Смирнов
Клиентские приложения под нагрузкой, Андрей СмирновКлиентские приложения под нагрузкой, Андрей Смирнов
Клиентские приложения под нагрузкой, Андрей Смирнов
 
Клиентские приложения под нагрузкой (HighLoad 2014)
Клиентские приложения под нагрузкой (HighLoad 2014)Клиентские приложения под нагрузкой (HighLoad 2014)
Клиентские приложения под нагрузкой (HighLoad 2014)
 
05 razrabotka pod insales
05 razrabotka pod insales05 razrabotka pod insales
05 razrabotka pod insales
 
Разгоняем ASP.NET Core / Илья Вербицкий (WebStoating s.r.o.)
Разгоняем ASP.NET Core / Илья Вербицкий (WebStoating s.r.o.)Разгоняем ASP.NET Core / Илья Вербицкий (WebStoating s.r.o.)
Разгоняем ASP.NET Core / Илья Вербицкий (WebStoating s.r.o.)
 
Решения сообщества для SharePoint
Решения сообщества для SharePointРешения сообщества для SharePoint
Решения сообщества для SharePoint
 
Дизайн REST API для высокопроизводительных систем / Александр Лебедев (Новые ...
Дизайн REST API для высокопроизводительных систем / Александр Лебедев (Новые ...Дизайн REST API для высокопроизводительных систем / Александр Лебедев (Новые ...
Дизайн REST API для высокопроизводительных систем / Александр Лебедев (Новые ...
 
Cache administration tool report - rus-1
Cache administration tool   report - rus-1Cache administration tool   report - rus-1
Cache administration tool report - rus-1
 
Как превратить приложение в платформу
Как превратить приложение в платформуКак превратить приложение в платформу
Как превратить приложение в платформу
 
API плюс толстый клиент – новая парадигма веб-разработки? / Андрей Лебедев (Г...
API плюс толстый клиент – новая парадигма веб-разработки? / Андрей Лебедев (Г...API плюс толстый клиент – новая парадигма веб-разработки? / Андрей Лебедев (Г...
API плюс толстый клиент – новая парадигма веб-разработки? / Андрей Лебедев (Г...
 
Drupal и мобильные устройства, Комелин Константин
Drupal и мобильные устройства, Комелин КонстантинDrupal и мобильные устройства, Комелин Константин
Drupal и мобильные устройства, Комелин Константин
 
Антон Киршанов — Особенности архитектуры Single Page Application
Антон Киршанов — Особенности архитектуры Single Page Application Антон Киршанов — Особенности архитектуры Single Page Application
Антон Киршанов — Особенности архитектуры Single Page Application
 
Изоморфный JavaScript — будущее уже здесь
Изоморфный JavaScript — будущее уже здесьИзоморфный JavaScript — будущее уже здесь
Изоморфный JavaScript — будущее уже здесь
 
разработка Metro style приложений
разработка Metro style приложенийразработка Metro style приложений
разработка Metro style приложений
 
доклад на вмк 15.10.2015
доклад на вмк 15.10.2015доклад на вмк 15.10.2015
доклад на вмк 15.10.2015
 
02 - Web-технологии. Web-клиенты
02 - Web-технологии. Web-клиенты02 - Web-технологии. Web-клиенты
02 - Web-технологии. Web-клиенты
 
YuryByyanov (e-legion) @ CodeCamp2011
YuryByyanov (e-legion) @ CodeCamp2011YuryByyanov (e-legion) @ CodeCamp2011
YuryByyanov (e-legion) @ CodeCamp2011
 
Как мы разрабатываем новый фронтенд / Филипп Нехаев (Tinkoff.ru)
Как мы разрабатываем новый фронтенд / Филипп Нехаев (Tinkoff.ru)Как мы разрабатываем новый фронтенд / Филипп Нехаев (Tinkoff.ru)
Как мы разрабатываем новый фронтенд / Филипп Нехаев (Tinkoff.ru)
 
Система обработки бизнес-логики server-side приложения на Groovy
Система обработки бизнес-логики server-side приложения на GroovyСистема обработки бизнес-логики server-side приложения на Groovy
Система обработки бизнес-логики server-side приложения на Groovy
 
Cloud APIs. Обзор API западных провайдеров и API Scalaxy (Нат Гаджибалаев)
Cloud APIs. Обзор API западных провайдеров и API Scalaxy (Нат Гаджибалаев)Cloud APIs. Обзор API западных провайдеров и API Scalaxy (Нат Гаджибалаев)
Cloud APIs. Обзор API западных провайдеров и API Scalaxy (Нат Гаджибалаев)
 

живые сайты

  • 3. Use case • Сайт похож на Desktop приложение • Реагирует на события мгновенно (до 200мс) • Стандартное поведение браузера не нарушено
  • 4. Целевая аудитория • Интернет магазины • Соц сети • Сайты знакомств • Корпоративные сайты • Браузерные игры
  • 5. Плюсы интерактивности • Сериализированные данные имеют меньший объем • Постоянное соединение, не делаем лишние запросы • Некоторые изменения HTML можно распараллелить • Заранее загрузить следующие шаги • Снизить время реакции до 200мс
  • 7. Use case для клиента • Правильные ссылки в адресной строке • Внутренним ссылки работают • Отправка формы • Кнопка "Назад" работает • Курсор загрузки страницы • Синхронизация • Хранение состояния
  • 8. Архитектура сервера • Отдельные сервисы для бизнес логики • Протокол общения между компонентами • Кроссплатформенный формат HTML шаблонов • JSON интерфейс может быть адаптирован под API • Брокер сообщений для уведомления пользователей
  • 9. Клиет - Сборка • Ant, Maven, Make • >> или copy • Минифицирование – Google Closure – YUI Compressor – UglifyJS – Webassets
  • 11. Клиент – код на CoffeScript Coffescript JavaScript
  • 12. Клиент - абстракции • Модель • Контроллер-Представление • Маршрутизатор • Коллекция
  • 13. Клиент - библиотеки • Blackbone.js • Spine.js • ember.js
  • 14. Клиент – обработчики событий • Представления – Пользовательское – Логическое – Навигации – Интерактивность
  • 15. Клиент – общее представление • Переопределяем внутренний href • Отправка формы – Автосохранение – Запрос • Отмена стандартной реакции браузера
  • 16. Клиент – адресная строка • HTML5 History API (pushState) • Изменения якоря ссылки после # • Трюки с iframe и setInterval Backbone.history.start () Подкласс Backbone.Router • Ссылка внутренняя? • return false; • router.navigate(href.substring(1), {trigger: true, replace: true})
  • 17. Клиент – адресная строка, что еще? Обработка Shift, Ctrl + click jQuery (button, shiftkey, metakey) window.open() Курсор ожидания CSS cursor: style="cursor: wait;" Анимированный favicon.ico
  • 18. Клиент – синхронизация состояния Model.fetch() через setInterval()
  • 19. Постоянное соединение - Транспорт • WebSocket • HTTP Streaming • HTTP Polling • Adobe Flash
  • 20. Транспорт – Абстракции • Метод для отправки сообщений • Обработчик получения сообщений • Обработчик установления и разрыва соединения • Натройки для клиента при инициации соединения
  • 21. Транспорт - Библиотеки • socket.io • SockJS • Коммерческие библиотеки в облаках Сервер • Netty, Jetty for Java • Tornado for Python
  • 22. Socket.IO Клиент Сервер - Tornado Отправить сообщение
  • 24. Рендеринг - MUSTACHE A typical Mustache template: Hello {{name}} You have just won ${{value}}! {{#in_ca}} Well, ${{taxed_value}}, after taxes. {{/in_ca}} Given the following hash: { "name": "Chris", "value": 10000, "taxed_value": 10000 - (10000 * 0.4), "in_ca": true } Will produce the following: Hello Chris You have just won $10000! Well, $6000.0, after taxes.
  • 25. Сервер – REST API • Java – Restlet, Apache Wink, Jersey • Python - web.py, Flask and Bottle
  • 26. Сервер – брокер сообщений • Протокол AMQP (Advanced Message Queueing Protocol) • Реализация RabbitMQ Попроще? Тогда Redis
  • 27. RabbitMQ – точка обмена • Отправка всем (fanout) - (publish-subscribe) • Прямая (direct) - (message queue) • Тематическая (topic) – (pattern)
  • 28. RabbitMQ - сценарии • Выполнение длительных операций • События в реальном времени – Постоянное соединение – Точка обмена – отправить всем