SlideShare a Scribd company logo
1 of 40
Download to read offline
Интерактивные карты 
планировок на сайтах торговых 
центров. 
Производительность, грабли, интеграция с 
CMS 1C-Битрикс
О чем пойдет речь? 
• Как делать фронт для корпоративного сегмента и не сойти с ума 
• Порция страданий от IE8 
• Немного оптимизации 
2
Почему это актуально? 
3
Почему интерактивные? 
1. Реагируют на поведение пользователя 
2. Возможен поиск по карте 
3. Могут подстраиваться под особенности экрана пользователя 
4. Информацию на карте можно менять без участия специалистов 
4
Требования 
1. Максимальный охват браузеров и OS 
2. Высобкая скорость работы (реакция на действия пользователя) 
3. Удобный и привычный интерфейс 
4. Сокращение времени на разработку и поддержку 
5
Стек технологий 
1. <img> + <map> 
2. SVG + Canvas + FabricJS + excanvas.js (old IE) 
3. SVG + VML + Raphael.JS 
4. Yandex MAP 
5. Google MAP https://www.google.com/maps/about/partners/indoormaps/ 
6. somename MAP 
6
<img> + <map> 
1. Очень высокая производительность 
2. Просто в реализации 
3. Сложно выстрелить себе в ногу 
4. Отличная поддержка браузерами 
7
<img> + <map> 
1. Сложности с адаптивом 
2. Дисплеи повышенность четкости 
3. Органичения на манипуляции с картой 
4. Резкое повышение трудоемкости при незначительном увеличении 
сложности 
8
<img> + <map> 
9
<img> + <map> 
10
SVG, Canvas 
1. Ограниченно быстро 
2. Практически любые манипуляции пользователя с картой 
3. Retina - OK 
4. манипуляции на js 
11
12
SVG, Canvas 
1. Raphael.js 
2. excanvas.js 
Получаем VML в старых IE 
Получаем проблемы с производительностью 
14
Raphael.js (http://raphaeljs.com/) 
• Автоматически конвертировать в Raphael.js можно не все директивы 
SVG 
• То, что сконвертировано - работает даже на мобильных платформах (с 
исключениями) 
• Из ~800кб SVG файла получаем 2.5Мб js кода 
• За это получаем API для работы с тем, что нагенерировано 
15
SVG, Canvas 
• Делай два варианта карт 
• Оптимизируй 
16
Что?
Оптимизация до того, как все плохо 
• Проанализировать картинку 
• Отбросить статические элементы 
• Отказаться от нестандартных шрифтов (?) 
• Не переводить шрифты в кривые 
• Все что только возможно перевести в растр 
18
Оптимизация до того как все плохо 
Иначе 
1. Эти точки нужно описать кодом на js 
2. Этот код все равно нужно грузить клиенту 
3. Эти точки нужно отрисовать браузеру 
19
20
Открой карту в IE8 
21
Производительность
Главный цикл браузера. Основной поток 
• Занимается отрисовкой DOM, работой с DOM и обработкой JS 
• Один поток 
• Обработчики и события выстраиваются в очередь 
• Обрабатываются по очереди 
• Загрузка и исполнение JS блокирующие 
23
Оптимизация 
1. Всегда использовать preloader 
2. Вынести часть кода в ленивую загрузку 
3. Использовать псевдомногопоточность SetTimeout 0, 
window.setImmediate() 
24
Yandex MAP
26
Что мы получаем? 
1. "Богатая" поддерживаемая платформа 
2. Обширное API 
3. Хороший стек браузеров, в том числе и мобильные 
4. Хорошая производительность 
5. Имеет доверие у пользователей 
27
Как работает 
1. Фон - растр 
2. Карта рисуется и режется на тайлы (прямоугольные области) 
3. Поверх основного (рисованного) слоя карты накладываются активные 
области 
4. Пользователь взаимодействует не с растром, а с активными областями 
- ИНТЕРАКТИВНОСТЬ 
28
29
Вот оно, да?
Yandex, Google, etc. 
1. Иногда сложно вписать в общую идею сайта 
2. Ограничения по расширению функционала 
3. Зависимость от сторонней платформы 
31
32
Что выбрать? 
33
Что выбрать? 
34
Получение данных 
• Компактность 
• Кешируемость 
• Возможность ленивой загрузки 
• Версионность 
35
01. 
02. 
03. 
04. 
05. 
06. 
07. 
08. 
09. 
10. 
11. 
{ 
"uid":"5", 
"name":"", 
"shop_name":"Федя Модный", 
"floor":"2", 
"coordinats":"...", 
"category":"10", 
"logo":__PATH_TO_LOGO__, 
"description":"", 
... 
} 
36
JSON, JSONP 
• Нативно 
• Быстро парсится 
• Можно хранить в Local Storage, APP Cache, Browser Cache 
• Хорошо сжимается 
37
А что 
на сервере?
Например, Bitrix 
• Структура карты хорошо "ложится" с структуру инфоблоков 
• Источником данных для карты могут служить json файлы 
• Не нужно каждый раз обращаться к данным на сервере 
• Данные в json изменяются только по: 
• OnAfterIBlockElementAdd 
• OnAfterIBlockElementDelete 
• OnAfterIBlockElementUpdate 
39
Спасибо! 
Денис Завгородний, веб-технолог Digital-агентства AlterEgo 
denis.zavgorodny@gmail.com 
https://twitter.com/DenisZavgorodny 
40

More Related Content

What's hot

JavaScript + Webdriver = ♥
JavaScript + Webdriver = ♥ JavaScript + Webdriver = ♥
JavaScript + Webdriver = ♥ SQALab
 
Heyworks: Cравнительный анализ решений для клиент-серверного взаимодействия и...
Heyworks: Cравнительный анализ решений для клиент-серверного взаимодействия и...Heyworks: Cравнительный анализ решений для клиент-серверного взаимодействия и...
Heyworks: Cравнительный анализ решений для клиент-серверного взаимодействия и...DevGAMM Conference
 
"Mobile Velocity Index: Data-driven оптимизация времени старта" / Павел Воро...
 "Mobile Velocity Index: Data-driven оптимизация времени старта" / Павел Воро... "Mobile Velocity Index: Data-driven оптимизация времени старта" / Павел Воро...
"Mobile Velocity Index: Data-driven оптимизация времени старта" / Павел Воро...Egor Petrov
 
2015-12-05 Сергей Аверин - Javascript-фреймворки: должен остаться только один
2015-12-05 Сергей Аверин - Javascript-фреймворки: должен остаться только один2015-12-05 Сергей Аверин - Javascript-фреймворки: должен остаться только один
2015-12-05 Сергей Аверин - Javascript-фреймворки: должен остаться только одинHappyDev
 
CodeFest 2013. Баяндин А. — JavaScript + Webdriver = ♥
CodeFest 2013. Баяндин А. — JavaScript + Webdriver = ♥CodeFest 2013. Баяндин А. — JavaScript + Webdriver = ♥
CodeFest 2013. Баяндин А. — JavaScript + Webdriver = ♥CodeFest
 
Автокомпозит: ускоряем сайт за 15 минут
Автокомпозит: ускоряем сайт за 15 минутАвтокомпозит: ускоряем сайт за 15 минут
Автокомпозит: ускоряем сайт за 15 минут1С-Битрикс
 
Изоформные приложения на React.js
Изоформные приложения на React.jsИзоформные приложения на React.js
Изоформные приложения на React.jsMax Klymyshyn
 
«Процесс создания продукта», Максим Берёзкин
«Процесс создания продукта», Максим Берёзкин«Процесс создания продукта», Максим Берёзкин
«Процесс создания продукта», Максим БерёзкинDevDay
 
2.5D игры и особенности разработки многопользовательских игр
2.5D игры и особенности разработки многопользовательских игр2.5D игры и особенности разработки многопользовательских игр
2.5D игры и особенности разработки многопользовательских игрGleb Polushkin
 
Remoto powered by Windows Azure
Remoto powered by Windows AzureRemoto powered by Windows Azure
Remoto powered by Windows AzureVitaly Baum
 

What's hot (12)

JavaScript + Webdriver = ♥
JavaScript + Webdriver = ♥ JavaScript + Webdriver = ♥
JavaScript + Webdriver = ♥
 
Vba 01
Vba 01Vba 01
Vba 01
 
Heyworks: Cравнительный анализ решений для клиент-серверного взаимодействия и...
Heyworks: Cравнительный анализ решений для клиент-серверного взаимодействия и...Heyworks: Cравнительный анализ решений для клиент-серверного взаимодействия и...
Heyworks: Cравнительный анализ решений для клиент-серверного взаимодействия и...
 
"Mobile Velocity Index: Data-driven оптимизация времени старта" / Павел Воро...
 "Mobile Velocity Index: Data-driven оптимизация времени старта" / Павел Воро... "Mobile Velocity Index: Data-driven оптимизация времени старта" / Павел Воро...
"Mobile Velocity Index: Data-driven оптимизация времени старта" / Павел Воро...
 
2015-12-05 Сергей Аверин - Javascript-фреймворки: должен остаться только один
2015-12-05 Сергей Аверин - Javascript-фреймворки: должен остаться только один2015-12-05 Сергей Аверин - Javascript-фреймворки: должен остаться только один
2015-12-05 Сергей Аверин - Javascript-фреймворки: должен остаться только один
 
CodeFest 2013. Баяндин А. — JavaScript + Webdriver = ♥
CodeFest 2013. Баяндин А. — JavaScript + Webdriver = ♥CodeFest 2013. Баяндин А. — JavaScript + Webdriver = ♥
CodeFest 2013. Баяндин А. — JavaScript + Webdriver = ♥
 
Автокомпозит: ускоряем сайт за 15 минут
Автокомпозит: ускоряем сайт за 15 минутАвтокомпозит: ускоряем сайт за 15 минут
Автокомпозит: ускоряем сайт за 15 минут
 
Изоформные приложения на React.js
Изоформные приложения на React.jsИзоформные приложения на React.js
Изоформные приложения на React.js
 
«Процесс создания продукта», Максим Берёзкин
«Процесс создания продукта», Максим Берёзкин«Процесс создания продукта», Максим Берёзкин
«Процесс создания продукта», Максим Берёзкин
 
WebAssembly
WebAssemblyWebAssembly
WebAssembly
 
2.5D игры и особенности разработки многопользовательских игр
2.5D игры и особенности разработки многопользовательских игр2.5D игры и особенности разработки многопользовательских игр
2.5D игры и особенности разработки многопользовательских игр
 
Remoto powered by Windows Azure
Remoto powered by Windows AzureRemoto powered by Windows Azure
Remoto powered by Windows Azure
 

Viewers also liked

1С-Битрикс: Интерактивная карта объектов
1С-Битрикс: Интерактивная карта объектов1С-Битрикс: Интерактивная карта объектов
1С-Битрикс: Интерактивная карта объектов1С-Битрикс
 
Linemedia автоэксперт для вебинара 1с битрикс
Linemedia автоэксперт для вебинара 1с битриксLinemedia автоэксперт для вебинара 1с битрикс
Linemedia автоэксперт для вебинара 1с битриксVlad Silbers
 
#6 Что общего у "1С-Битрикс" и других продуктов "1С". Вопросы синхронизации
#6 Что общего у "1С-Битрикс" и других продуктов "1С". Вопросы синхронизации#6 Что общего у "1С-Битрикс" и других продуктов "1С". Вопросы синхронизации
#6 Что общего у "1С-Битрикс" и других продуктов "1С". Вопросы синхронизацииВЦ СофтСервис
 
#2 1С-Битрикс для управления сайтами
#2 1С-Битрикс для управления сайтами#2 1С-Битрикс для управления сайтами
#2 1С-Битрикс для управления сайтамиВЦ СофтСервис
 
Возможности платформы «1С-­Битрикс» для управления сайтами
 Возможности платформы  «1С-­Битрикс» для управления сайтами Возможности платформы  «1С-­Битрикс» для управления сайтами
Возможности платформы «1С-­Битрикс» для управления сайтамиВиталий Дудка
 
С. Головко "История создания одного интернет-магазина"
С. Головко "История создания одного интернет-магазина"С. Головко "История создания одного интернет-магазина"
С. Головко "История создания одного интернет-магазина"awgua
 
1С-Битрикс: От Старта к Большому бизнесу
1С-Битрикс: От Старта к Большому бизнесу1С-Битрикс: От Старта к Большому бизнесу
1С-Битрикс: От Старта к Большому бизнесуЕвгений Курбанов
 
Интеграция 1С-Битрикс с 1С- от коробочного функционала до кастомизированной о...
Интеграция 1С-Битрикс с 1С- от коробочного функционала до кастомизированной о...Интеграция 1С-Битрикс с 1С- от коробочного функционала до кастомизированной о...
Интеграция 1С-Битрикс с 1С- от коробочного функционала до кастомизированной о...Агентство AlterEGO
 
1с битрикс и seo
1с битрикс и seo1с битрикс и seo
1с битрикс и seoSMSdesign
 
Bitrix and 1c
Bitrix and 1cBitrix and 1c
Bitrix and 1cBurbon.ru
 
«1С-Битрикс: 1С:Франчайзи»
«1С-Битрикс:  1С:Франчайзи»  «1С-Битрикс:  1С:Франчайзи»
«1С-Битрикс: 1С:Франчайзи» 1С-Битрикс
 
Разработка сайта с 1С Битрикс
Разработка сайта с 1С БитриксРазработка сайта с 1С Битрикс
Разработка сайта с 1С БитриксMax Baas
 
сравнение Drupal и 1с битрикс
сравнение Drupal и 1с битрикссравнение Drupal и 1с битрикс
сравнение Drupal и 1с битриксAndrii Podanenko
 
«1С-Битрикс» и сертификация ФСТЭК России
«1С-Битрикс» и сертификация ФСТЭК России«1С-Битрикс» и сертификация ФСТЭК России
«1С-Битрикс» и сертификация ФСТЭК России1С-Битрикс
 
Платформа для интернет-магазина -- 1С Битрикс
Платформа для интернет-магазина -- 1С БитриксПлатформа для интернет-магазина -- 1С Битрикс
Платформа для интернет-магазина -- 1С БитриксMax Baas
 
Презентация новинок «1С-Битрикс: Управление сайтом 14.5»
Презентация новинок «1С-Битрикс: Управление сайтом 14.5»Презентация новинок «1С-Битрикс: Управление сайтом 14.5»
Презентация новинок «1С-Битрикс: Управление сайтом 14.5»1С-Битрикс
 
Разработка интернет-магазина с 1С Битрикс
Разработка интернет-магазина с 1С БитриксРазработка интернет-магазина с 1С Битрикс
Разработка интернет-магазина с 1С БитриксMax Baas
 
"1С-Битрикс: Управление сайтом" - платформа для интернет-магазина
"1С-Битрикс: Управление сайтом" - платформа для интернет-магазина"1С-Битрикс: Управление сайтом" - платформа для интернет-магазина
"1С-Битрикс: Управление сайтом" - платформа для интернет-магазинаИнтернет-агентство Митра
 
Cоцсети? Зачем? Ведь у нас есть сайт!
Cоцсети? Зачем? Ведь у нас есть сайт!Cоцсети? Зачем? Ведь у нас есть сайт!
Cоцсети? Зачем? Ведь у нас есть сайт!Агентство AlterEGO
 

Viewers also liked (20)

1С-Битрикс: Интерактивная карта объектов
1С-Битрикс: Интерактивная карта объектов1С-Битрикс: Интерактивная карта объектов
1С-Битрикс: Интерактивная карта объектов
 
Linemedia автоэксперт для вебинара 1с битрикс
Linemedia автоэксперт для вебинара 1с битриксLinemedia автоэксперт для вебинара 1с битрикс
Linemedia автоэксперт для вебинара 1с битрикс
 
#6 Что общего у "1С-Битрикс" и других продуктов "1С". Вопросы синхронизации
#6 Что общего у "1С-Битрикс" и других продуктов "1С". Вопросы синхронизации#6 Что общего у "1С-Битрикс" и других продуктов "1С". Вопросы синхронизации
#6 Что общего у "1С-Битрикс" и других продуктов "1С". Вопросы синхронизации
 
#2 1С-Битрикс для управления сайтами
#2 1С-Битрикс для управления сайтами#2 1С-Битрикс для управления сайтами
#2 1С-Битрикс для управления сайтами
 
Возможности платформы «1С-­Битрикс» для управления сайтами
 Возможности платформы  «1С-­Битрикс» для управления сайтами Возможности платформы  «1С-­Битрикс» для управления сайтами
Возможности платформы «1С-­Битрикс» для управления сайтами
 
С. Головко "История создания одного интернет-магазина"
С. Головко "История создания одного интернет-магазина"С. Головко "История создания одного интернет-магазина"
С. Головко "История создания одного интернет-магазина"
 
1С-Битрикс: От Старта к Большому бизнесу
1С-Битрикс: От Старта к Большому бизнесу1С-Битрикс: От Старта к Большому бизнесу
1С-Битрикс: От Старта к Большому бизнесу
 
Что нового в 12.0?
Что нового в 12.0?Что нового в 12.0?
Что нового в 12.0?
 
Интеграция 1С-Битрикс с 1С- от коробочного функционала до кастомизированной о...
Интеграция 1С-Битрикс с 1С- от коробочного функционала до кастомизированной о...Интеграция 1С-Битрикс с 1С- от коробочного функционала до кастомизированной о...
Интеграция 1С-Битрикс с 1С- от коробочного функционала до кастомизированной о...
 
1с битрикс и seo
1с битрикс и seo1с битрикс и seo
1с битрикс и seo
 
Bitrix and 1c
Bitrix and 1cBitrix and 1c
Bitrix and 1c
 
«1С-Битрикс: 1С:Франчайзи»
«1С-Битрикс:  1С:Франчайзи»  «1С-Битрикс:  1С:Франчайзи»
«1С-Битрикс: 1С:Франчайзи»
 
Разработка сайта с 1С Битрикс
Разработка сайта с 1С БитриксРазработка сайта с 1С Битрикс
Разработка сайта с 1С Битрикс
 
сравнение Drupal и 1с битрикс
сравнение Drupal и 1с битрикссравнение Drupal и 1с битрикс
сравнение Drupal и 1с битрикс
 
«1С-Битрикс» и сертификация ФСТЭК России
«1С-Битрикс» и сертификация ФСТЭК России«1С-Битрикс» и сертификация ФСТЭК России
«1С-Битрикс» и сертификация ФСТЭК России
 
Платформа для интернет-магазина -- 1С Битрикс
Платформа для интернет-магазина -- 1С БитриксПлатформа для интернет-магазина -- 1С Битрикс
Платформа для интернет-магазина -- 1С Битрикс
 
Презентация новинок «1С-Битрикс: Управление сайтом 14.5»
Презентация новинок «1С-Битрикс: Управление сайтом 14.5»Презентация новинок «1С-Битрикс: Управление сайтом 14.5»
Презентация новинок «1С-Битрикс: Управление сайтом 14.5»
 
Разработка интернет-магазина с 1С Битрикс
Разработка интернет-магазина с 1С БитриксРазработка интернет-магазина с 1С Битрикс
Разработка интернет-магазина с 1С Битрикс
 
"1С-Битрикс: Управление сайтом" - платформа для интернет-магазина
"1С-Битрикс: Управление сайтом" - платформа для интернет-магазина"1С-Битрикс: Управление сайтом" - платформа для интернет-магазина
"1С-Битрикс: Управление сайтом" - платформа для интернет-магазина
 
Cоцсети? Зачем? Ведь у нас есть сайт!
Cоцсети? Зачем? Ведь у нас есть сайт!Cоцсети? Зачем? Ведь у нас есть сайт!
Cоцсети? Зачем? Ведь у нас есть сайт!
 

Similar to Интерактивные карты планировок на сайтах торговых центров

Javascript-фреймворки: должен остаться только один / Аверин Сергей (Acronis)
Javascript-фреймворки: должен остаться только один / Аверин Сергей (Acronis)Javascript-фреймворки: должен остаться только один / Аверин Сергей (Acronis)
Javascript-фреймворки: должен остаться только один / Аверин Сергей (Acronis)Ontico
 
Javascript-фреймворки:
 должен остаться только один
Javascript-фреймворки:
 должен остаться только одинJavascript-фреймворки:
 должен остаться только один
Javascript-фреймворки:
 должен остаться только одинSergey Xek
 
SECON'2016. Сергей Аверин. Javascript-фреймворки:
 должен остаться только один
SECON'2016. Сергей Аверин. Javascript-фреймворки:
 должен остаться только одинSECON'2016. Сергей Аверин. Javascript-фреймворки:
 должен остаться только один
SECON'2016. Сергей Аверин. Javascript-фреймворки:
 должен остаться только одинSECON
 
SECON'2016. Аверин Сергей, Javascript-фреймворки:
 должен остаться только один
SECON'2016. Аверин Сергей, Javascript-фреймворки:
 должен остаться только одинSECON'2016. Аверин Сергей, Javascript-фреймворки:
 должен остаться только один
SECON'2016. Аверин Сергей, Javascript-фреймворки:
 должен остаться только одинSECON
 
IT-инфраструктура. FAQ для разработчика
IT-инфраструктура. FAQ для разработчикаIT-инфраструктура. FAQ для разработчика
IT-инфраструктура. FAQ для разработчикаMikhail Chinkov
 
Как анимировать тысячи объектов на карте и не подвесить браузер
Как анимировать тысячи объектов на карте и не подвесить браузерКак анимировать тысячи объектов на карте и не подвесить браузер
Как анимировать тысячи объектов на карте и не подвесить браузерDotNetConf
 
Сергей Перескоков "JS API Яндекс.Карт 2.0: что нового и как это работает"
Сергей Перескоков "JS API Яндекс.Карт 2.0: что нового и как это работает"Сергей Перескоков "JS API Яндекс.Карт 2.0: что нового и как это работает"
Сергей Перескоков "JS API Яндекс.Карт 2.0: что нового и как это работает"Yandex
 
Микросервисы, чистый PaaS и конкурс Мисс Россия
Микросервисы, чистый PaaS и конкурс Мисс РоссияМикросервисы, чистый PaaS и конкурс Мисс Россия
Микросервисы, чистый PaaS и конкурс Мисс РоссияAlexander Byndyu
 
Масштабируемые кроссплатформенные веб-приложения / Илья Пухальский (Epam)
Масштабируемые кроссплатформенные веб-приложения / Илья Пухальский (Epam)Масштабируемые кроссплатформенные веб-приложения / Илья Пухальский (Epam)
Масштабируемые кроссплатформенные веб-приложения / Илья Пухальский (Epam)Ontico
 
Mihail Zachepilo - WebAssembly powered Machine Learning
Mihail Zachepilo - WebAssembly powered Machine LearningMihail Zachepilo - WebAssembly powered Machine Learning
Mihail Zachepilo - WebAssembly powered Machine LearningOdessaJS Conf
 
Микросервисная архитектура на базе CoreOS и Kubernetes
Микросервисная архитектура на базе CoreOS и KubernetesМикросервисная архитектура на базе CoreOS и Kubernetes
Микросервисная архитектура на базе CoreOS и KubernetesDenis Izmaylov
 
Гатиятов Руслан, технический директор ООО “Дроид Лабс”: “Система управления п...
Гатиятов Руслан, технический директор ООО “Дроид Лабс”: “Система управления п...Гатиятов Руслан, технический директор ООО “Дроид Лабс”: “Система управления п...
Гатиятов Руслан, технический директор ООО “Дроид Лабс”: “Система управления п...Provectus
 
Dmytro Nemesh "Building the perfect infrastructure with Kubernetes"
Dmytro Nemesh "Building the perfect infrastructure with Kubernetes"Dmytro Nemesh "Building the perfect infrastructure with Kubernetes"
Dmytro Nemesh "Building the perfect infrastructure with Kubernetes"Fwdays
 
Как жить в согласии с SOLID?
Как жить в согласии с SOLID?Как жить в согласии с SOLID?
Как жить в согласии с SOLID?etyumentcev
 
С.Лалов "Corona SDK для разработки кроссплатформенных приложений", DUMP-2014
С.Лалов "Corona SDK для разработки кроссплатформенных приложений", DUMP-2014С.Лалов "Corona SDK для разработки кроссплатформенных приложений", DUMP-2014
С.Лалов "Corona SDK для разработки кроссплатформенных приложений", DUMP-2014it-people
 
Как сделать веб-карту, сохранить здоровье и возненавидеть IE
Как сделать веб-карту, сохранить здоровье и возненавидеть IEКак сделать веб-карту, сохранить здоровье и возненавидеть IE
Как сделать веб-карту, сохранить здоровье и возненавидеть IEАртём Кудзев
 
Лучшие практики корпоративной разработки. Лекция 0: обзор курса.
Лучшие практики корпоративной разработки. Лекция 0: обзор курса.Лучшие практики корпоративной разработки. Лекция 0: обзор курса.
Лучшие практики корпоративной разработки. Лекция 0: обзор курса.Vadim Martynov
 
Простая и дешёвая бизнес-аналитика на базе Google BigQuery / Алексей Паршуков...
Простая и дешёвая бизнес-аналитика на базе Google BigQuery / Алексей Паршуков...Простая и дешёвая бизнес-аналитика на базе Google BigQuery / Алексей Паршуков...
Простая и дешёвая бизнес-аналитика на базе Google BigQuery / Алексей Паршуков...Ontico
 

Similar to Интерактивные карты планировок на сайтах торговых центров (20)

Javascript-фреймворки: должен остаться только один / Аверин Сергей (Acronis)
Javascript-фреймворки: должен остаться только один / Аверин Сергей (Acronis)Javascript-фреймворки: должен остаться только один / Аверин Сергей (Acronis)
Javascript-фреймворки: должен остаться только один / Аверин Сергей (Acronis)
 
Javascript-фреймворки:
 должен остаться только один
Javascript-фреймворки:
 должен остаться только одинJavascript-фреймворки:
 должен остаться только один
Javascript-фреймворки:
 должен остаться только один
 
SECON'2016. Сергей Аверин. Javascript-фреймворки:
 должен остаться только один
SECON'2016. Сергей Аверин. Javascript-фреймворки:
 должен остаться только одинSECON'2016. Сергей Аверин. Javascript-фреймворки:
 должен остаться только один
SECON'2016. Сергей Аверин. Javascript-фреймворки:
 должен остаться только один
 
SECON'2016. Аверин Сергей, Javascript-фреймворки:
 должен остаться только один
SECON'2016. Аверин Сергей, Javascript-фреймворки:
 должен остаться только одинSECON'2016. Аверин Сергей, Javascript-фреймворки:
 должен остаться только один
SECON'2016. Аверин Сергей, Javascript-фреймворки:
 должен остаться только один
 
IT-инфраструктура. FAQ для разработчика
IT-инфраструктура. FAQ для разработчикаIT-инфраструктура. FAQ для разработчика
IT-инфраструктура. FAQ для разработчика
 
Как анимировать тысячи объектов на карте и не подвесить браузер
Как анимировать тысячи объектов на карте и не подвесить браузерКак анимировать тысячи объектов на карте и не подвесить браузер
Как анимировать тысячи объектов на карте и не подвесить браузер
 
Сергей Перескоков "JS API Яндекс.Карт 2.0: что нового и как это работает"
Сергей Перескоков "JS API Яндекс.Карт 2.0: что нового и как это работает"Сергей Перескоков "JS API Яндекс.Карт 2.0: что нового и как это работает"
Сергей Перескоков "JS API Яндекс.Карт 2.0: что нового и как это работает"
 
Микросервисы, чистый PaaS и конкурс Мисс Россия
Микросервисы, чистый PaaS и конкурс Мисс РоссияМикросервисы, чистый PaaS и конкурс Мисс Россия
Микросервисы, чистый PaaS и конкурс Мисс Россия
 
Масштабируемые кроссплатформенные веб-приложения / Илья Пухальский (Epam)
Масштабируемые кроссплатформенные веб-приложения / Илья Пухальский (Epam)Масштабируемые кроссплатформенные веб-приложения / Илья Пухальский (Epam)
Масштабируемые кроссплатформенные веб-приложения / Илья Пухальский (Epam)
 
Mihail Zachepilo - WebAssembly powered Machine Learning
Mihail Zachepilo - WebAssembly powered Machine LearningMihail Zachepilo - WebAssembly powered Machine Learning
Mihail Zachepilo - WebAssembly powered Machine Learning
 
Микросервисная архитектура на базе CoreOS и Kubernetes
Микросервисная архитектура на базе CoreOS и KubernetesМикросервисная архитектура на базе CoreOS и Kubernetes
Микросервисная архитектура на базе CoreOS и Kubernetes
 
Гатиятов Руслан, технический директор ООО “Дроид Лабс”: “Система управления п...
Гатиятов Руслан, технический директор ООО “Дроид Лабс”: “Система управления п...Гатиятов Руслан, технический директор ООО “Дроид Лабс”: “Система управления п...
Гатиятов Руслан, технический директор ООО “Дроид Лабс”: “Система управления п...
 
Diplom 1
Diplom 1Diplom 1
Diplom 1
 
Dmytro Nemesh "Building the perfect infrastructure with Kubernetes"
Dmytro Nemesh "Building the perfect infrastructure with Kubernetes"Dmytro Nemesh "Building the perfect infrastructure with Kubernetes"
Dmytro Nemesh "Building the perfect infrastructure with Kubernetes"
 
Как жить в согласии с SOLID?
Как жить в согласии с SOLID?Как жить в согласии с SOLID?
Как жить в согласии с SOLID?
 
С.Лалов "Corona SDK для разработки кроссплатформенных приложений", DUMP-2014
С.Лалов "Corona SDK для разработки кроссплатформенных приложений", DUMP-2014С.Лалов "Corona SDK для разработки кроссплатформенных приложений", DUMP-2014
С.Лалов "Corona SDK для разработки кроссплатформенных приложений", DUMP-2014
 
Как сделать веб-карту, сохранить здоровье и возненавидеть IE
Как сделать веб-карту, сохранить здоровье и возненавидеть IEКак сделать веб-карту, сохранить здоровье и возненавидеть IE
Как сделать веб-карту, сохранить здоровье и возненавидеть IE
 
404fest
404fest404fest
404fest
 
Лучшие практики корпоративной разработки. Лекция 0: обзор курса.
Лучшие практики корпоративной разработки. Лекция 0: обзор курса.Лучшие практики корпоративной разработки. Лекция 0: обзор курса.
Лучшие практики корпоративной разработки. Лекция 0: обзор курса.
 
Простая и дешёвая бизнес-аналитика на базе Google BigQuery / Алексей Паршуков...
Простая и дешёвая бизнес-аналитика на базе Google BigQuery / Алексей Паршуков...Простая и дешёвая бизнес-аналитика на базе Google BigQuery / Алексей Паршуков...
Простая и дешёвая бизнес-аналитика на базе Google BigQuery / Алексей Паршуков...
 

More from Агентство AlterEGO

CRM для интернет-магазина. Возможности сервиса Битрикс24 для эффективной рабо...
CRM для интернет-магазина. Возможности сервиса Битрикс24 для эффективной рабо...CRM для интернет-магазина. Возможности сервиса Битрикс24 для эффективной рабо...
CRM для интернет-магазина. Возможности сервиса Битрикс24 для эффективной рабо...Агентство AlterEGO
 
Support, как он есть, или чем занимается поддержка сайтов
Support, как он есть, или чем занимается поддержка сайтовSupport, как он есть, или чем занимается поддержка сайтов
Support, как он есть, или чем занимается поддержка сайтовАгентство AlterEGO
 
Качественная аналитика сайта
Качественная аналитика сайтаКачественная аналитика сайта
Качественная аналитика сайтаАгентство AlterEGO
 
Кнут и пряник. Построение системы мотивации сотрудников с помощью Битрикс24
Кнут и пряник. Построение системы мотивации сотрудников с помощью Битрикс24Кнут и пряник. Построение системы мотивации сотрудников с помощью Битрикс24
Кнут и пряник. Построение системы мотивации сотрудников с помощью Битрикс24Агентство AlterEGO
 
Проблемы и пути их решения при командной разработке проектов
Проблемы и пути их решения при командной разработке проектовПроблемы и пути их решения при командной разработке проектов
Проблемы и пути их решения при командной разработке проектовАгентство AlterEGO
 
Методология создания интернет-магазина
Методология создания интернет-магазинаМетодология создания интернет-магазина
Методология создания интернет-магазинаАгентство AlterEGO
 
Особенности создания дизайна сайта торгового центра
Особенности создания дизайна сайта торгового центраОсобенности создания дизайна сайта торгового центра
Особенности создания дизайна сайта торгового центраАгентство AlterEGO
 

More from Агентство AlterEGO (7)

CRM для интернет-магазина. Возможности сервиса Битрикс24 для эффективной рабо...
CRM для интернет-магазина. Возможности сервиса Битрикс24 для эффективной рабо...CRM для интернет-магазина. Возможности сервиса Битрикс24 для эффективной рабо...
CRM для интернет-магазина. Возможности сервиса Битрикс24 для эффективной рабо...
 
Support, как он есть, или чем занимается поддержка сайтов
Support, как он есть, или чем занимается поддержка сайтовSupport, как он есть, или чем занимается поддержка сайтов
Support, как он есть, или чем занимается поддержка сайтов
 
Качественная аналитика сайта
Качественная аналитика сайтаКачественная аналитика сайта
Качественная аналитика сайта
 
Кнут и пряник. Построение системы мотивации сотрудников с помощью Битрикс24
Кнут и пряник. Построение системы мотивации сотрудников с помощью Битрикс24Кнут и пряник. Построение системы мотивации сотрудников с помощью Битрикс24
Кнут и пряник. Построение системы мотивации сотрудников с помощью Битрикс24
 
Проблемы и пути их решения при командной разработке проектов
Проблемы и пути их решения при командной разработке проектовПроблемы и пути их решения при командной разработке проектов
Проблемы и пути их решения при командной разработке проектов
 
Методология создания интернет-магазина
Методология создания интернет-магазинаМетодология создания интернет-магазина
Методология создания интернет-магазина
 
Особенности создания дизайна сайта торгового центра
Особенности создания дизайна сайта торгового центраОсобенности создания дизайна сайта торгового центра
Особенности создания дизайна сайта торгового центра
 

Интерактивные карты планировок на сайтах торговых центров

  • 1. Интерактивные карты планировок на сайтах торговых центров. Производительность, грабли, интеграция с CMS 1C-Битрикс
  • 2. О чем пойдет речь? • Как делать фронт для корпоративного сегмента и не сойти с ума • Порция страданий от IE8 • Немного оптимизации 2
  • 4. Почему интерактивные? 1. Реагируют на поведение пользователя 2. Возможен поиск по карте 3. Могут подстраиваться под особенности экрана пользователя 4. Информацию на карте можно менять без участия специалистов 4
  • 5. Требования 1. Максимальный охват браузеров и OS 2. Высобкая скорость работы (реакция на действия пользователя) 3. Удобный и привычный интерфейс 4. Сокращение времени на разработку и поддержку 5
  • 6. Стек технологий 1. <img> + <map> 2. SVG + Canvas + FabricJS + excanvas.js (old IE) 3. SVG + VML + Raphael.JS 4. Yandex MAP 5. Google MAP https://www.google.com/maps/about/partners/indoormaps/ 6. somename MAP 6
  • 7. <img> + <map> 1. Очень высокая производительность 2. Просто в реализации 3. Сложно выстрелить себе в ногу 4. Отличная поддержка браузерами 7
  • 8. <img> + <map> 1. Сложности с адаптивом 2. Дисплеи повышенность четкости 3. Органичения на манипуляции с картой 4. Резкое повышение трудоемкости при незначительном увеличении сложности 8
  • 11. SVG, Canvas 1. Ограниченно быстро 2. Практически любые манипуляции пользователя с картой 3. Retina - OK 4. манипуляции на js 11
  • 12. 12
  • 13.
  • 14. SVG, Canvas 1. Raphael.js 2. excanvas.js Получаем VML в старых IE Получаем проблемы с производительностью 14
  • 15. Raphael.js (http://raphaeljs.com/) • Автоматически конвертировать в Raphael.js можно не все директивы SVG • То, что сконвертировано - работает даже на мобильных платформах (с исключениями) • Из ~800кб SVG файла получаем 2.5Мб js кода • За это получаем API для работы с тем, что нагенерировано 15
  • 16. SVG, Canvas • Делай два варианта карт • Оптимизируй 16
  • 18. Оптимизация до того, как все плохо • Проанализировать картинку • Отбросить статические элементы • Отказаться от нестандартных шрифтов (?) • Не переводить шрифты в кривые • Все что только возможно перевести в растр 18
  • 19. Оптимизация до того как все плохо Иначе 1. Эти точки нужно описать кодом на js 2. Этот код все равно нужно грузить клиенту 3. Эти точки нужно отрисовать браузеру 19
  • 20. 20
  • 23. Главный цикл браузера. Основной поток • Занимается отрисовкой DOM, работой с DOM и обработкой JS • Один поток • Обработчики и события выстраиваются в очередь • Обрабатываются по очереди • Загрузка и исполнение JS блокирующие 23
  • 24. Оптимизация 1. Всегда использовать preloader 2. Вынести часть кода в ленивую загрузку 3. Использовать псевдомногопоточность SetTimeout 0, window.setImmediate() 24
  • 26. 26
  • 27. Что мы получаем? 1. "Богатая" поддерживаемая платформа 2. Обширное API 3. Хороший стек браузеров, в том числе и мобильные 4. Хорошая производительность 5. Имеет доверие у пользователей 27
  • 28. Как работает 1. Фон - растр 2. Карта рисуется и режется на тайлы (прямоугольные области) 3. Поверх основного (рисованного) слоя карты накладываются активные области 4. Пользователь взаимодействует не с растром, а с активными областями - ИНТЕРАКТИВНОСТЬ 28
  • 29. 29
  • 31. Yandex, Google, etc. 1. Иногда сложно вписать в общую идею сайта 2. Ограничения по расширению функционала 3. Зависимость от сторонней платформы 31
  • 32. 32
  • 35. Получение данных • Компактность • Кешируемость • Возможность ленивой загрузки • Версионность 35
  • 36. 01. 02. 03. 04. 05. 06. 07. 08. 09. 10. 11. { "uid":"5", "name":"", "shop_name":"Федя Модный", "floor":"2", "coordinats":"...", "category":"10", "logo":__PATH_TO_LOGO__, "description":"", ... } 36
  • 37. JSON, JSONP • Нативно • Быстро парсится • Можно хранить в Local Storage, APP Cache, Browser Cache • Хорошо сжимается 37
  • 38. А что на сервере?
  • 39. Например, Bitrix • Структура карты хорошо "ложится" с структуру инфоблоков • Источником данных для карты могут служить json файлы • Не нужно каждый раз обращаться к данным на сервере • Данные в json изменяются только по: • OnAfterIBlockElementAdd • OnAfterIBlockElementDelete • OnAfterIBlockElementUpdate 39
  • 40. Спасибо! Денис Завгородний, веб-технолог Digital-агентства AlterEgo denis.zavgorodny@gmail.com https://twitter.com/DenisZavgorodny 40