SlideShare a Scribd company logo
POLYMER 
New Era 
of 
Web Development
ЧТО ТАКОЕ POLYMER? 
Библиотека, которая использует 
новейшие веб-технологии 
Elements 
Core 
(polymer.js) 
Foundation 
(platform.js) 
для создания 
пользовательских HTML элементов
ЧТО ТАКОЕ POLYMER? 
Elements 
Core 
(polymer.js) 
Foundation 
(platform.js)
ВСЕ ЕСТЬ ЭЛЕМЕНТ
ВСЕ ЕСТЬ ЭЛЕМЕНТ 
Layout 
Data 
View 
Services/libs 
<polymer-layout> 
<polymer-flex-layout> 
<polymer-grid-layout> 
<polymer-media-query> 
<polymer-page> 
<polymer-localstorage> 
<polymer-xhr> 
<polymer-jsonp> 
<polymer-file> 
<polymer-meta> 
<your-custom-lib> 
<google-doc> 
<google-map> 
<google-youtube> 
<google-sheets>
ЗАГЛЯНЕМ ГЛУБЖЕ
ЗАГЛЯНЕМ ГЛУБЖЕ 
Декларирование элемента
ЗАГЛЯНЕМ ГЛУБЖЕ 
Шаблон элемента
ЗАГЛЯНЕМ ГЛУБЖЕ 
Shadow DOM
ЗАГЛЯНЕМ ГЛУБЖЕ 
Code and logic…
ПОДРОБНЕЕ О ВЕБ-КОМПОНЕНТАХ 
(ШАБЛОНЫ) 
• Поведение как у привычных шаблонов 
• Контент шаблона инертен (не происходит подгрузки внешних 
элементов) пока шаблон не активирован 
• Не возникает краевых эффектов с внешними элементами 
• Как-бы «не в документе» - селекторы его не возвращают 
содержимое шаблона
Shadow DOM 
Всем выйти 
из сумрака! 
http://illustrators.ru/illustrations/195271
SHADOW DOM 
множество DOM деревьев в пределах родительского 
… 
shadow host 
Document Tree 
child … child 
Shadow Trees 
Shadow 
shadow root 
chil chil 
… … 
…
SHADOW DOM 
• Light DOM
SHADOW DOM 
• Light DOM 
• Shadow DOM 
Light DOM + Shadow DOM = Logical DOM (с этим работает разработчик)
SHADOW DOM 
• Light DOM 
• Shadow DOM 
• Composed (rendered) DOM 
Браузер использует Composed DOM для вывода на странице
SHADOW DOM 
Polymer позволяет перейти 
на светлую сторону 
от императивной работы с Shadow DOM к декларативной
HTML IMPORTS 
• Нативные способы доставки ресурсов 
(<script src>, <link rel="stylesheet">, <img>, <video>, <audio>) 
• А если нужно доставить HTML? 
• <iframe> 
• AJAX (xhr.responseType = ‘document') 
• CrazyHacks™ (<script type="text/html">)
HTML IMPORTS 
• Веб-компоненты позволяют делать это проще 
• … даже с другого домена
HTML IMPORTS 
• Мы хотим больше! (HTML/CSS/JS)
HTML IMPORTS 
• А что с производительностью? 
• Vulcanize (https://github.com/Polymer/vulcanize) 
• активно используется кэширование браузера 
• асинхронная загрузка компонентов 
• импорты не блокируют парсинг 
• импорты не заставляют компонент «исполняться» сразу
DATA BINDING 
• Двусторонняя (two-way) связка данных
DATA BINDING 
(ТИПЫ СВЯЗЫВАНИЯ) 
• Экземпляры одного шаблона
DATA BINDING 
(ТИПЫ СВЯЗЫВАНИЯ) 
• Итеративные шаблоны
DATA BINDING 
(ТИПЫ СВЯЗЫВАНИЯ) 
• Шаблоны с условием
DATA BINDING 
(ТИПЫ СВЯЗЫВАНИЯ) 
• Использование шаблонов по ссылке
DATA BINDING 
(ТИПЫ СВЯЗЫВАНИЯ) 
• Использование шаблонов по ссылке 
… или так
DATA BINDING 
(ТИПЫ СВЯЗЫВАНИЯ) 
• Binding to text 
• Binding to attributes 
• Binding to input values 
<input>, <select>, <option>, <textarea>
DATA BINDING 
{{ВЫРАЖЕНИЯ}} 
• Устраняет использование сложной логики в 
представлениях (view) 
• Выражения не являются скриптом 
• Не вставляют HTML (позволяют избежать XSS) 
• Поддерживают вложенность
DATA BINDING 
ДЕКЛАРАТИВНЫЕ ОБРАБОТЧИКИ СОБЫТИЙ
DATA BINDING 
АВТОМАТИЧЕСКИЙ ПОИСК ЭЛЕМЕНТА
СТИЛИЗАЦИЯ ЭЛЕМЕНТОВ
СТИЛИЗАЦИЯ ЭЛЕМЕНТОВ 
• Polymer умеет вставлять файлы стилей в элементы 
(нативный Shadow DOM это НЕ умеет)
СТИЛИЗАЦИЯ ЭЛЕМЕНТОВ 
• Polymer умеет вставлять файлы стилей в элементы 
(нативный Shadow DOM это НЕ умеет) 
Разворачивается в
НАТИВНАЯ ПОДДЕРЖКА
POLYMER 
Elements 
Core 
(polymer.js) 
Foundation 
(platform.js) 
когда все браузеры 
реализуют спецификацию 
этот слой станет не нужен
ЧТО ЕСТЬ УЖЕ СЕЙЧАС? 
• Core Elements 
• Paper Elements (+Material Design) 
• Community Elements (Github, etc…)
POLYMER DESIGNER 
https://www.polymer-project.org/tools/designer/ 
Создание прототипов простым перетаскиванием
СПАСИБО ЗА ВНИМАНИЕ 
• https://www.polymer-project.org/ 
• https://plus.google.com/+PolymerProject 
• http://customelements.io/ 
• http://habrahabr.ru/post/180377/ 
Кириллов Александр 
Twitter: @saratovsource 
LinkedIn: ru.linkedin.com/in/kirillovalexander/

More Related Content

PPT
633942
PPT
Оптимизация CSS
PPTX
Александр Кириллов. Веб разработка: Что такое Ruby On Rails. РИФ-Воронеж 2016
PDF
Frontendlab: Фреймворк Duranda js - Виктор Сотов
PPTX
Full Stack разработка на JavaScript
PPT
Эффективный JavaScript - IQLab Frontend Fusion 2012
PDF
Synthesis of polyaniline
PPT
Polymer Processing Cost Saving Workshop - 02 Northern Ireland Polymers Associ...
633942
Оптимизация CSS
Александр Кириллов. Веб разработка: Что такое Ruby On Rails. РИФ-Воронеж 2016
Frontendlab: Фреймворк Duranda js - Виктор Сотов
Full Stack разработка на JavaScript
Эффективный JavaScript - IQLab Frontend Fusion 2012
Synthesis of polyaniline
Polymer Processing Cost Saving Workshop - 02 Northern Ireland Polymers Associ...

Viewers also liked (11)

PDF
Новое Ялагино
PDF
Enhancing Performance of Biopolymers Through Polymer and Formulation Design
PDF
Synthesis and properties of Polyaniline
PPT
Spiral Dynamics and Agile Software Development
PPTX
Organic light emitting diode (oled)
PDF
CROSS Development Group
PDF
Умный Жилой Комплекс 2015
PPTX
Polymer processing, characterisation and applications
PPT
Ch08
PPT
сервисы создания и хранения презентаций
PDF
Processing polymer
Новое Ялагино
Enhancing Performance of Biopolymers Through Polymer and Formulation Design
Synthesis and properties of Polyaniline
Spiral Dynamics and Agile Software Development
Organic light emitting diode (oled)
CROSS Development Group
Умный Жилой Комплекс 2015
Polymer processing, characterisation and applications
Ch08
сервисы создания и хранения презентаций
Processing polymer
Ad

Similar to Polymer - New Era of Web Development (20)

PDF
Фронтенд разработка без боли
PPT
Catalyst – MVC framework на Perl (RIT 2008)
PDF
Mobile web apps
PDF
Meet Magento Belarus 2015: Denis Bosak
PDF
Иван Карев — Клиентская оптимизация
PPTX
Построение собственного JS SDK — зачем и как?
PDF
сравнение Drupal и 1с битрикс
PDF
Быстро о быстром
PDF
Разработка мобильного и веб интерфейса для Caché
PDF
Web and mobile development for intersystems caché, Eduard Lebedyuk
PDF
My Open Source (Sept 2017)
PDF
09 - Web-технологии. MVC фреймворки
PDF
Баба-Яга против! — Роман Дворнов, Ostrovok.ru
PPTX
Создание повторно используемых бизнес моделей с помощью технологии Domain Com...
PDF
Евгений Филатов "Одностраничные приложения на БЭМ и Node.js"
PDF
Структурированные данные, Юлия Тихоход, лекция в Школе вебмастеров Яндекса
PDF
Экскурс в мир WEB разработки
PDF
Иван Карев — Клиентская оптимизация
PPTX
Есть ли жизнь с ORM или типовая архитектура CRUD приложения
PPTX
Отполифиль свой CSS - MinskCSS 2
Фронтенд разработка без боли
Catalyst – MVC framework на Perl (RIT 2008)
Mobile web apps
Meet Magento Belarus 2015: Denis Bosak
Иван Карев — Клиентская оптимизация
Построение собственного JS SDK — зачем и как?
сравнение Drupal и 1с битрикс
Быстро о быстром
Разработка мобильного и веб интерфейса для Caché
Web and mobile development for intersystems caché, Eduard Lebedyuk
My Open Source (Sept 2017)
09 - Web-технологии. MVC фреймворки
Баба-Яга против! — Роман Дворнов, Ostrovok.ru
Создание повторно используемых бизнес моделей с помощью технологии Domain Com...
Евгений Филатов "Одностраничные приложения на БЭМ и Node.js"
Структурированные данные, Юлия Тихоход, лекция в Школе вебмастеров Яндекса
Экскурс в мир WEB разработки
Иван Карев — Клиентская оптимизация
Есть ли жизнь с ORM или типовая архитектура CRUD приложения
Отполифиль свой CSS - MinskCSS 2
Ad

More from Alexander Kirillov (9)

PDF
Rom - Ruby Object Mapper
PDF
Окружение разработчика - от виртуализации к контейнеризации
PDF
Виртуализация как инструмент разработчика
PDF
Application deployment & configuration management
PDF
XSLT. Basic.
PDF
Предметно-ориентированные языки программирования (DSL)
KEY
Securing Rails Applications
KEY
Rom - Ruby Object Mapper
Окружение разработчика - от виртуализации к контейнеризации
Виртуализация как инструмент разработчика
Application deployment & configuration management
XSLT. Basic.
Предметно-ориентированные языки программирования (DSL)
Securing Rails Applications

Polymer - New Era of Web Development

  • 1. POLYMER New Era of Web Development
  • 2. ЧТО ТАКОЕ POLYMER? Библиотека, которая использует новейшие веб-технологии Elements Core (polymer.js) Foundation (platform.js) для создания пользовательских HTML элементов
  • 3. ЧТО ТАКОЕ POLYMER? Elements Core (polymer.js) Foundation (platform.js)
  • 5. ВСЕ ЕСТЬ ЭЛЕМЕНТ Layout Data View Services/libs <polymer-layout> <polymer-flex-layout> <polymer-grid-layout> <polymer-media-query> <polymer-page> <polymer-localstorage> <polymer-xhr> <polymer-jsonp> <polymer-file> <polymer-meta> <your-custom-lib> <google-doc> <google-map> <google-youtube> <google-sheets>
  • 11. ПОДРОБНЕЕ О ВЕБ-КОМПОНЕНТАХ (ШАБЛОНЫ) • Поведение как у привычных шаблонов • Контент шаблона инертен (не происходит подгрузки внешних элементов) пока шаблон не активирован • Не возникает краевых эффектов с внешними элементами • Как-бы «не в документе» - селекторы его не возвращают содержимое шаблона
  • 12. Shadow DOM Всем выйти из сумрака! http://illustrators.ru/illustrations/195271
  • 13. SHADOW DOM множество DOM деревьев в пределах родительского … shadow host Document Tree child … child Shadow Trees Shadow shadow root chil chil … … …
  • 14. SHADOW DOM • Light DOM
  • 15. SHADOW DOM • Light DOM • Shadow DOM Light DOM + Shadow DOM = Logical DOM (с этим работает разработчик)
  • 16. SHADOW DOM • Light DOM • Shadow DOM • Composed (rendered) DOM Браузер использует Composed DOM для вывода на странице
  • 17. SHADOW DOM Polymer позволяет перейти на светлую сторону от императивной работы с Shadow DOM к декларативной
  • 18. HTML IMPORTS • Нативные способы доставки ресурсов (<script src>, <link rel="stylesheet">, <img>, <video>, <audio>) • А если нужно доставить HTML? • <iframe> • AJAX (xhr.responseType = ‘document') • CrazyHacks™ (<script type="text/html">)
  • 19. HTML IMPORTS • Веб-компоненты позволяют делать это проще • … даже с другого домена
  • 20. HTML IMPORTS • Мы хотим больше! (HTML/CSS/JS)
  • 21. HTML IMPORTS • А что с производительностью? • Vulcanize (https://github.com/Polymer/vulcanize) • активно используется кэширование браузера • асинхронная загрузка компонентов • импорты не блокируют парсинг • импорты не заставляют компонент «исполняться» сразу
  • 22. DATA BINDING • Двусторонняя (two-way) связка данных
  • 23. DATA BINDING (ТИПЫ СВЯЗЫВАНИЯ) • Экземпляры одного шаблона
  • 24. DATA BINDING (ТИПЫ СВЯЗЫВАНИЯ) • Итеративные шаблоны
  • 25. DATA BINDING (ТИПЫ СВЯЗЫВАНИЯ) • Шаблоны с условием
  • 26. DATA BINDING (ТИПЫ СВЯЗЫВАНИЯ) • Использование шаблонов по ссылке
  • 27. DATA BINDING (ТИПЫ СВЯЗЫВАНИЯ) • Использование шаблонов по ссылке … или так
  • 28. DATA BINDING (ТИПЫ СВЯЗЫВАНИЯ) • Binding to text • Binding to attributes • Binding to input values <input>, <select>, <option>, <textarea>
  • 29. DATA BINDING {{ВЫРАЖЕНИЯ}} • Устраняет использование сложной логики в представлениях (view) • Выражения не являются скриптом • Не вставляют HTML (позволяют избежать XSS) • Поддерживают вложенность
  • 30. DATA BINDING ДЕКЛАРАТИВНЫЕ ОБРАБОТЧИКИ СОБЫТИЙ
  • 31. DATA BINDING АВТОМАТИЧЕСКИЙ ПОИСК ЭЛЕМЕНТА
  • 33. СТИЛИЗАЦИЯ ЭЛЕМЕНТОВ • Polymer умеет вставлять файлы стилей в элементы (нативный Shadow DOM это НЕ умеет)
  • 34. СТИЛИЗАЦИЯ ЭЛЕМЕНТОВ • Polymer умеет вставлять файлы стилей в элементы (нативный Shadow DOM это НЕ умеет) Разворачивается в
  • 36. POLYMER Elements Core (polymer.js) Foundation (platform.js) когда все браузеры реализуют спецификацию этот слой станет не нужен
  • 37. ЧТО ЕСТЬ УЖЕ СЕЙЧАС? • Core Elements • Paper Elements (+Material Design) • Community Elements (Github, etc…)
  • 38. POLYMER DESIGNER https://www.polymer-project.org/tools/designer/ Создание прототипов простым перетаскиванием
  • 39. СПАСИБО ЗА ВНИМАНИЕ • https://www.polymer-project.org/ • https://plus.google.com/+PolymerProject • http://customelements.io/ • http://habrahabr.ru/post/180377/ Кириллов Александр Twitter: @saratovsource LinkedIn: ru.linkedin.com/in/kirillovalexander/