SlideShare uma empresa Scribd logo
1 de 48
ОБЗОР HTML 5по следам #html5camp Сергей Звягин Ingate Development
Что такое html5? 19.02.2011 Ingate Development / TulaDev.NET 2
Семантика 19.02.2011 Ingate Development / TulaDev.NET 3
	Семантическая разметка Было Стало 19.02.2011 Ingate Development / TulaDev.NET 4 Страница свёрстана с использованием элементов div и присвоенных каждому из них классов CSS. Исходный код не отражает идеи дизайнера, он сложен для восприятия. Страница свёрстана с использованием новых семантических элементов HTML5. Название каждого блока соответствует его цели на странице. Исходный код лёгок для восприятия.
	Семантическая разметка Теги не должны определять отображение Главная цель тегов – смысловая нагрузка Разрешены перекрывающиеся теги Бинарные атрибуты не имеют значений 19.02.2011 Ingate Development / TulaDev.NET 5
	Семантическая разметка Новые семантические теги: <header> <footer> <article> <section> <nav> <aside> <figure> <figcaption> <progress> и другие 19.02.2011 Ingate Development / TulaDev.NET 6
	Семантическая разметка Уже существующие теги получили семантический оттенок 	Например: <i> - интонация <strong> - важность <b> - выделение без указания важности 19.02.2011 Ingate Development / TulaDev.NET 7
Web forms 2.o Новые типы полей ввода: range search color email url date time telи другие Спецификация НЕ описывает как они должны отображаться 19.02.2011 Ingate Development / TulaDev.NET 8
Microdata расширение текущего механизма микроформатов набор пар ключ-значение, добавленных в документ параллельно основному контенту нацелено на автоматизированные парсеры (напр., поисковые роботы) 19.02.2011 Ingate Development / TulaDev.NET 9
Microdata Пример: <section itemscopeitemtype="http://example.org/animals#cat">  <h1 itemprop="name http://example.com/fn">Hedral</h1>  <p itemprop="desc"> Hedral is a male american domesticshorthair, with a fluffy <spanitemprop="http://example.com/color">black</span> fur with <spanitemprop="http://example.com/color">white</span> paws and belly. </p>  <imgitemprop="img"src="hedral.jpeg" alt="" title="Hedral, age 18 months"/> </section> 19.02.2011 Ingate Development / TulaDev.NET 10
CSS3 и стилизация 19.02.2011 Ingate Development / TulaDev.NET 11
CSS3: Прозрачность Было Стало background-color: rgb(0,0,255); opacity: 0.5; Все потомки элемента наследуют свойство opacity background-color: rgba(0,0,255,0.5); Прозрачность получит только фон конкретного элемента 19.02.2011 Ingate Development / TulaDev.NET 12
CSS3: фоновые изображения 19.02.2011 Ingate Development / TulaDev.NET 13 Указание размера фоновой картинки .backgroundsize {   background:		url(logo.gif);   background-size:	203px 45px; } Использование нескольких фоновых картинок .multiplebackgrounds {   background: 	url(top.gif) top left no-repeat, 				url(bottom.gif) bottom left no-repeat, url(middle.gif) left repeat-y; }
CSS3: Границы и тени 19.02.2011 Ingate Development / TulaDev.NET 14 Закругленные углы .border_rounded { border: 2px solid #897048; border-radius: 5px; } Тени .border_shadow { box-shadow: 10px 10px 5px #888; } .text_shadow { text-shadow: 2px 2px2px #ddccb5; }
CSS3: трансформации 19.02.2011 Ingate Development / TulaDev.NET 15 Растягивание блоков .ui_resizable{   resize: both; } Трансформация .transform_elementa:hover {   transform: scale(1.15) rotate(-5deg); }
Web Open Font Format 19.02.2011 Ingate Development / TulaDev.NET 16 Сжатый OpenTypeили TrueType шрифт Нет возможности шифрования Пример: @font-face { 	font-family: 'MyFontFamily'; src: url('myfont-webfont.eot?')    format('eot'),  url('myfont-webfont.woff')    format('woff'),  url('myfont-webfont.ttf')     format('truetype'), url('myfont-webfont.svg#name')format('svg'); }
3D, графика и эффекты 19.02.2011 Ingate Development / TulaDev.NET 17
SVG 19.02.2011 Ingate Development / TulaDev.NET 18 Xml-подобный язык для визуального описания векторной графики Первый черновик спецификации создан аж в 1998 году Индексируется поисковыми машинами 2 варианта анимации:  SMIL или CSSTransform
SVG 19.02.2011 Ingate Development / TulaDev.NET 19  Пример: <rect x="100" y="100« width="550" height="550« fill="#FAFAA2" stroke="#000« /> <circle cx="100" cy="100"r="275« fill="#FAFAA2" stroke="#000« /> <line x1="230" y1="570" x2="640" y2="490« stroke="#000« />
SVG 19.02.2011 Ingate Development / TulaDev.NET 20 DOM модель у SVG и HTML одинаковая Следовательно можно изменять отдельные блоки посредством JavaScript Медиа-выражения позволяют добавлять условные блоки
Canvas 19.02.2011 Ingate Development / TulaDev.NET 21 Набор API для создания и управления растровой графикой при помощи JavaScript HTML: <canvas id="canvas"> width="600" height="600"></canvas> JavaScript: varcanvas = document.getElementyId('canvas').getContext('2d'); canvas.rect( 25, 25, 550, 550 ); canvas.fillStyle= '#FAFAA2'; canvas.strokeStyle= '#000'; canvas.lineWidth= 50;
WebGL 19.02.2011 Ingate Development / TulaDev.NET 22 Развитие эксперимента Canvas 3D Графика аппаратно ускорена Первая черновая спецификация стандарта опубликована 10 декабря 2009 года
Мультимедиа 19.02.2011 Ingate Development / TulaDev.NET 23
Audio и Video 19.02.2011 Ingate Development / TulaDev.NET 24 Не нужно никаких дополнительных кодеков, установленных программ или кода Набор воспроизводимых форматов ограничен Спецификация не предоставляет описания, как должны выглядеть элементы управления
Audio и Video 19.02.2011 Ingate Development / TulaDev.NET 25 Поддержка разных форматов аудио различными браузерами: * Информация приведена для браузеров Opera 11, Firefox 4 beta, IE9 beta, Chrome 9, Safari 5
Audio и Video 19.02.2011 Ingate Development / TulaDev.NET 26 Поддержка разных форматов видео различными браузерами: * Информация приведена для браузеров Opera 11, Firefox 4 beta, IE9 beta, Chrome 9, Safari 5
Автономная работа и локальные хранилища 19.02.2011 Ingate Development / TulaDev.NET 27
Offline & sTORAGE 19.02.2011 Ingate Development / TulaDev.NET 28 Offline Application Caching API Web Storage Indexed Database API File API Web SQL Database
HTML5 App Cache 19.02.2011 Ingate Development / TulaDev.NET 29 Можно принудительно указать какие файлы кешируются браузером, а какие нет: HTML: <!DOCTYPE HTML> <html manifest="cache-manifest"> ... Manifest File (text/cache-manifest): CACHE MANIFEST index.html style/default.css images/logo.png NETWORK: server.cgi
Web Storage 19.02.2011 Ingate Development / TulaDev.NET 30 Можно хранить состояние для сайта в течение короткого или длительного промежутка времени Используются объекты sessionStorageи localStorage Предполагается использовать как замену Cookies
Indexed DB 19.02.2011 Ingate Development / TulaDev.NET 31 Возможность хранения пар ключ-значение Индексы, курсоры, транзакции… 2 API для работы с базой: синхронный и асинхронный
Indexed DB 19.02.2011 Ingate Development / TulaDev.NET 32 Пример: vardb = indexedDB.open('books', 'Book store', false); if (db.version !== '1.0') { varolddb = indexedDB.open('books', 'Book store'); olddb.createObjectStore('books', 'isbn'); olddb.createIndex('BookAuthor', 'books', 'author', false); olddb.setVersion("1.0");   } varindex = db.openIndex('BookAuthor'); var matching = index.get('fred'); if (matching)   report(matching.isbn, matching.name, matching.author); else   report(null);
File API 19.02.2011 Ingate Development / TulaDev.NET 33 Контроль процесса загрузки файла на сервер Можно работать с содержимым файла до отправки на сервер (объект FileReader) Возможность выбирать сразу несколько файлов
Взаимодействие клиента и сервера 19.02.2011 Ingate Development / TulaDev.NET 34
Web sockets 19.02.2011 Ingate Development / TulaDev.NET 35 протокол полнодуплексной двунаправленной связи поверх TCP соединения, предназначенный для обмена сообщениями между браузером и веб-сервером в режиме реального времени W3C занимается стандартизацией API Web Sockets, а IETF занимается утверждением протокола Web Socket
Web sockets 19.02.2011 Ingate Development / TulaDev.NET 36 Пример: <script> varwebSocket = new WebSocket('ws://localhost/echo'); webSocket.onopen= function(event) {                 alert('onopen'); webSocket.send("Hello Web Socket!");             }; webSocket.onmessage= function(event) {                 alert('onmessage, ' + event.data); webSocket.close();             }; webSocket.onclose= function(event) {                 alert('onclose'); }; </script>
Server-Sent Events 19.02.2011 Ingate Development / TulaDev.NET 37 Способ получения данных от сервера Нет никакой обработки ошибок Пример: <event-source src="http://example.com/ticker.php" id="stock"> <script type="text/javascript"> document.getElementById('stock') .addEventListener('stock change', function () { var data = event.data.split(''); updateStocks(data[0], data[1], data[2]); }, false); </script>
Доступ к устройствам 19.02.2011 Ingate Development / TulaDev.NET 38
Geolocation API 19.02.2011 Ingate Development / TulaDev.NET 39 Позволяет определить местоположение пользователя Используется только с согласия пользователя Предоставляет 2 метода: можно узнать местоположение разово или подписаться на изменение местоположения
<device> 19.02.2011 Ingate Development / TulaDev.NET 40 Доступ к веб-камере, микрофону, плееру, сканеру… Есть возможность захвата данных (объект StreamRecorder) и последующей работы с ними (например отправки на сервер посредством File API) На данный момент ни одна стабильная версия браузеров не поддерживает работу с тегом <device> 
Производительность 19.02.2011 Ingate Development / TulaDev.NET 41
Web Workers 19.02.2011 Ingate Development / TulaDev.NET 42 Перенос части клиентского кода в отдельный поток При создании объекта Worker указывается путь к исполняемому скрипту Исполняемый скрипт вызывает метод postMessage В этот момент у объекта Worker возникает событие onmessage Удобно использовать в сочетании с другими рассмотренными ранее API: IndexedDB, WebSockets…
XHR level 2 19.02.2011 Ingate Development / TulaDev.NET 43 Добавлено событие изменения прогресса Поддерживается работа с бинарными данными Появилась поддержка кросс-доменных запросов
Navigation Timing 19.02.2011 Ingate Development / TulaDev.NET 44 На данный момент довольно сложно определить, почему страница загружается в браузере долго Профайлеры помогают не всегда Navigation Timing – решение для измерения скорости загрузки страницы API предоставляет 2 объекта performance.timing и performance.navigation
Navigation Timing 19.02.2011 Ingate Development / TulaDev.NET 45
Это всё? 19.02.2011 Ingate Development / TulaDev.NET 46
Вопросы 19.02.2011 Ingate Development / TulaDev.NET 47
Сергей Звягин Ingate Development Twitter: @Bingo87 Специально для TulaDev.NET ОБЗОР HTML 5

Mais conteúdo relacionado

Destaque

Масштабирование и отказоустойчивость с Nginx
Масштабирование и отказоустойчивость с NginxМасштабирование и отказоустойчивость с Nginx
Масштабирование и отказоустойчивость с NginxGetDev.NET
 
Использование Mock объектов в модульном тестировании
Использование Mock объектов в модульном тестированииИспользование Mock объектов в модульном тестировании
Использование Mock объектов в модульном тестированииGetDev.NET
 
Introduction HackDemocracy Meetup 5: Citizen Platforms for Political Accounta...
Introduction HackDemocracy Meetup 5: Citizen Platforms for Political Accounta...Introduction HackDemocracy Meetup 5: Citizen Platforms for Political Accounta...
Introduction HackDemocracy Meetup 5: Citizen Platforms for Political Accounta...hackdemocracy
 
Wikileaks: secure dropbox or leaking dropbox?
Wikileaks: secure dropbox or leaking dropbox?Wikileaks: secure dropbox or leaking dropbox?
Wikileaks: secure dropbox or leaking dropbox?hackdemocracy
 
HackDemocracy 4: Open Data in Belgium Introduction
HackDemocracy 4: Open Data in Belgium IntroductionHackDemocracy 4: Open Data in Belgium Introduction
HackDemocracy 4: Open Data in Belgium Introductionhackdemocracy
 
FairObserver by Fabian Neuen
FairObserver by Fabian NeuenFairObserver by Fabian Neuen
FairObserver by Fabian Neuenhackdemocracy
 
Citizen Media Meetup
Citizen Media MeetupCitizen Media Meetup
Citizen Media Meetuphackdemocracy
 
Pirate Party, Wikileaks & the Anonymous
Pirate Party, Wikileaks & the AnonymousPirate Party, Wikileaks & the Anonymous
Pirate Party, Wikileaks & the Anonymoushackdemocracy
 
HackDemocracy Brussels 3: Using technology to improve School Choice Procedures
HackDemocracy Brussels 3: Using technology to improve School Choice ProceduresHackDemocracy Brussels 3: Using technology to improve School Choice Procedures
HackDemocracy Brussels 3: Using technology to improve School Choice Procedureshackdemocracy
 
Online and Offline Activism with the Indignados/Occupy movement
Online and Offline Activism with the Indignados/Occupy movementOnline and Offline Activism with the Indignados/Occupy movement
Online and Offline Activism with the Indignados/Occupy movementhackdemocracy
 
Introduction to HackDemocracy Brussels Meetup 3
Introduction to HackDemocracy Brussels Meetup 3Introduction to HackDemocracy Brussels Meetup 3
Introduction to HackDemocracy Brussels Meetup 3hackdemocracy
 
NewEurAsia by Christopher Schwartz
NewEurAsia by Christopher SchwartzNewEurAsia by Christopher Schwartz
NewEurAsia by Christopher Schwartzhackdemocracy
 
Political Memory - Memopol Toolkit (HackDemocracy Meetup 5)
Political Memory - Memopol Toolkit  (HackDemocracy Meetup 5)Political Memory - Memopol Toolkit  (HackDemocracy Meetup 5)
Political Memory - Memopol Toolkit (HackDemocracy Meetup 5)hackdemocracy
 
Roslyn - компилятор как сервис
Roslyn - компилятор как сервисRoslyn - компилятор как сервис
Roslyn - компилятор как сервисGetDev.NET
 
Microsoft NUI - Kinect
Microsoft NUI - KinectMicrosoft NUI - Kinect
Microsoft NUI - KinectGetDev.NET
 
Windows 10 для пользователей и разработчиков
Windows 10 для пользователей и разработчиковWindows 10 для пользователей и разработчиков
Windows 10 для пользователей и разработчиковGetDev.NET
 
LINQ: How It Works
LINQ: How It WorksLINQ: How It Works
LINQ: How It WorksGetDev.NET
 
Первое знакомство с MODx revolution
Первое знакомство с MODx revolutionПервое знакомство с MODx revolution
Первое знакомство с MODx revolutionGetDev.NET
 

Destaque (20)

Масштабирование и отказоустойчивость с Nginx
Масштабирование и отказоустойчивость с NginxМасштабирование и отказоустойчивость с Nginx
Масштабирование и отказоустойчивость с Nginx
 
Использование Mock объектов в модульном тестировании
Использование Mock объектов в модульном тестированииИспользование Mock объектов в модульном тестировании
Использование Mock объектов в модульном тестировании
 
Introduction HackDemocracy Meetup 5: Citizen Platforms for Political Accounta...
Introduction HackDemocracy Meetup 5: Citizen Platforms for Political Accounta...Introduction HackDemocracy Meetup 5: Citizen Platforms for Political Accounta...
Introduction HackDemocracy Meetup 5: Citizen Platforms for Political Accounta...
 
iRail and OpenData
iRail and OpenDataiRail and OpenData
iRail and OpenData
 
Wikileaks: secure dropbox or leaking dropbox?
Wikileaks: secure dropbox or leaking dropbox?Wikileaks: secure dropbox or leaking dropbox?
Wikileaks: secure dropbox or leaking dropbox?
 
HackDemocracy 4: Open Data in Belgium Introduction
HackDemocracy 4: Open Data in Belgium IntroductionHackDemocracy 4: Open Data in Belgium Introduction
HackDemocracy 4: Open Data in Belgium Introduction
 
FairObserver by Fabian Neuen
FairObserver by Fabian NeuenFairObserver by Fabian Neuen
FairObserver by Fabian Neuen
 
Citizen Media Meetup
Citizen Media MeetupCitizen Media Meetup
Citizen Media Meetup
 
Pirate Party, Wikileaks & the Anonymous
Pirate Party, Wikileaks & the AnonymousPirate Party, Wikileaks & the Anonymous
Pirate Party, Wikileaks & the Anonymous
 
HackDemocracy Brussels 3: Using technology to improve School Choice Procedures
HackDemocracy Brussels 3: Using technology to improve School Choice ProceduresHackDemocracy Brussels 3: Using technology to improve School Choice Procedures
HackDemocracy Brussels 3: Using technology to improve School Choice Procedures
 
Online and Offline Activism with the Indignados/Occupy movement
Online and Offline Activism with the Indignados/Occupy movementOnline and Offline Activism with the Indignados/Occupy movement
Online and Offline Activism with the Indignados/Occupy movement
 
Introduction to HackDemocracy Brussels Meetup 3
Introduction to HackDemocracy Brussels Meetup 3Introduction to HackDemocracy Brussels Meetup 3
Introduction to HackDemocracy Brussels Meetup 3
 
NewEurAsia by Christopher Schwartz
NewEurAsia by Christopher SchwartzNewEurAsia by Christopher Schwartz
NewEurAsia by Christopher Schwartz
 
Political Memory - Memopol Toolkit (HackDemocracy Meetup 5)
Political Memory - Memopol Toolkit  (HackDemocracy Meetup 5)Political Memory - Memopol Toolkit  (HackDemocracy Meetup 5)
Political Memory - Memopol Toolkit (HackDemocracy Meetup 5)
 
AngularJS
AngularJSAngularJS
AngularJS
 
Roslyn - компилятор как сервис
Roslyn - компилятор как сервисRoslyn - компилятор как сервис
Roslyn - компилятор как сервис
 
Microsoft NUI - Kinect
Microsoft NUI - KinectMicrosoft NUI - Kinect
Microsoft NUI - Kinect
 
Windows 10 для пользователей и разработчиков
Windows 10 для пользователей и разработчиковWindows 10 для пользователей и разработчиков
Windows 10 для пользователей и разработчиков
 
LINQ: How It Works
LINQ: How It WorksLINQ: How It Works
LINQ: How It Works
 
Первое знакомство с MODx revolution
Первое знакомство с MODx revolutionПервое знакомство с MODx revolution
Первое знакомство с MODx revolution
 

Semelhante a Обзор Html 5

Обзор Drupal 8 by Andrei Khalipau, Kostya Halipov and Егор Богатырёв
Обзор Drupal 8 by Andrei Khalipau, Kostya  Halipov and Егор БогатырёвОбзор Drupal 8 by Andrei Khalipau, Kostya  Halipov and Егор Богатырёв
Обзор Drupal 8 by Andrei Khalipau, Kostya Halipov and Егор БогатырёвMinsk PHP User Group
 
Pavel Rumantsev - Html5
Pavel Rumantsev - Html5Pavel Rumantsev - Html5
Pavel Rumantsev - Html5beloslab
 
Неочевидные возможности ускорения работы сайта
Неочевидные возможности ускорения работы сайтаНеочевидные возможности ускорения работы сайта
Неочевидные возможности ускорения работы сайтаNetpeak
 
HTML5, WebRTC технологии для коммуникаций в режиме реального времени и Jabber...
HTML5, WebRTC технологии для коммуникаций в режиме реального времени и Jabber...HTML5, WebRTC технологии для коммуникаций в режиме реального времени и Jabber...
HTML5, WebRTC технологии для коммуникаций в режиме реального времени и Jabber...Cisco Russia
 
Desktop app based on node js and html5
Desktop app based on node js and html5Desktop app based on node js and html5
Desktop app based on node js and html5Provectus
 
Эволюция стандартов и технологий видеосвязи. Докладчик: Cергей Юцайтис, Cisco
Эволюция стандартов и технологий видеосвязи. Докладчик: Cергей Юцайтис, CiscoЭволюция стандартов и технологий видеосвязи. Докладчик: Cергей Юцайтис, Cisco
Эволюция стандартов и технологий видеосвязи. Докладчик: Cергей Юцайтис, CiscoTrueConf
 
Экскурс в мир WEB разработки
Экскурс в мир WEB разработкиЭкскурс в мир WEB разработки
Экскурс в мир WEB разработкиIT-Доминанта
 
Meet Magento Belarus 2015: Denis Bosak
Meet Magento Belarus 2015: Denis BosakMeet Magento Belarus 2015: Denis Bosak
Meet Magento Belarus 2015: Denis BosakAmasty
 
SSL и сертификаты безопасности при работе с решениями Cisco Unified Communica...
SSL и сертификаты безопасности при работе с решениями Cisco Unified Communica...SSL и сертификаты безопасности при работе с решениями Cisco Unified Communica...
SSL и сертификаты безопасности при работе с решениями Cisco Unified Communica...Cisco Russia
 
Share Point Workflow
Share Point WorkflowShare Point Workflow
Share Point WorkflowMaximKo
 
CodeFest 2014. Коновалов А., Шкурко Д. — Разработка и оптимизация приложений ...
CodeFest 2014. Коновалов А., Шкурко Д. — Разработка и оптимизация приложений ...CodeFest 2014. Коновалов А., Шкурко Д. — Разработка и оптимизация приложений ...
CodeFest 2014. Коновалов А., Шкурко Д. — Разработка и оптимизация приложений ...CodeFest
 
1С-Битрикс: Управление сайтом Версия .NET
1С-Битрикс: Управление сайтом Версия .NET1С-Битрикс: Управление сайтом Версия .NET
1С-Битрикс: Управление сайтом Версия .NETMedia Gorod
 
Как за $5 и несколько вечеров сделать интегрированную новостную платформу
Как за $5 и несколько вечеров сделать интегрированную новостную платформуКак за $5 и несколько вечеров сделать интегрированную новостную платформу
Как за $5 и несколько вечеров сделать интегрированную новостную платформуAndrew Gubskiy
 
PhoneGap + Sencha
PhoneGap + SenchaPhoneGap + Sencha
PhoneGap + Senchaobservleer
 
Основы HTML - шесть лет спустя
Основы HTML - шесть лет спустяОсновы HTML - шесть лет спустя
Основы HTML - шесть лет спустяAlexander Babich
 
Проверено и работает. Инструменты Oracle для разработки веб приложений
Проверено и работает. Инструменты Oracle для разработки веб приложенийПроверено и работает. Инструменты Oracle для разработки веб приложений
Проверено и работает. Инструменты Oracle для разработки веб приложенийMedia Gorod
 
битрикс Framework сергей рыжиков
битрикс Framework   сергей рыжиковбитрикс Framework   сергей рыжиков
битрикс Framework сергей рыжиковMedia Gorod
 

Semelhante a Обзор Html 5 (20)

Обзор Drupal 8 by Andrei Khalipau, Kostya Halipov and Егор Богатырёв
Обзор Drupal 8 by Andrei Khalipau, Kostya  Halipov and Егор БогатырёвОбзор Drupal 8 by Andrei Khalipau, Kostya  Halipov and Егор Богатырёв
Обзор Drupal 8 by Andrei Khalipau, Kostya Halipov and Егор Богатырёв
 
Pavel Rumantsev - Html5
Pavel Rumantsev - Html5Pavel Rumantsev - Html5
Pavel Rumantsev - Html5
 
Неочевидные возможности ускорения работы сайта
Неочевидные возможности ускорения работы сайтаНеочевидные возможности ускорения работы сайта
Неочевидные возможности ускорения работы сайта
 
HTML5, WebRTC технологии для коммуникаций в режиме реального времени и Jabber...
HTML5, WebRTC технологии для коммуникаций в режиме реального времени и Jabber...HTML5, WebRTC технологии для коммуникаций в режиме реального времени и Jabber...
HTML5, WebRTC технологии для коммуникаций в режиме реального времени и Jabber...
 
Desktop app based on node js and html5
Desktop app based on node js and html5Desktop app based on node js and html5
Desktop app based on node js and html5
 
Teatro
TeatroTeatro
Teatro
 
Эволюция стандартов и технологий видеосвязи. Докладчик: Cергей Юцайтис, Cisco
Эволюция стандартов и технологий видеосвязи. Докладчик: Cергей Юцайтис, CiscoЭволюция стандартов и технологий видеосвязи. Докладчик: Cергей Юцайтис, Cisco
Эволюция стандартов и технологий видеосвязи. Докладчик: Cергей Юцайтис, Cisco
 
Экскурс в мир WEB разработки
Экскурс в мир WEB разработкиЭкскурс в мир WEB разработки
Экскурс в мир WEB разработки
 
Meet Magento Belarus 2015: Denis Bosak
Meet Magento Belarus 2015: Denis BosakMeet Magento Belarus 2015: Denis Bosak
Meet Magento Belarus 2015: Denis Bosak
 
SSL и сертификаты безопасности при работе с решениями Cisco Unified Communica...
SSL и сертификаты безопасности при работе с решениями Cisco Unified Communica...SSL и сертификаты безопасности при работе с решениями Cisco Unified Communica...
SSL и сертификаты безопасности при работе с решениями Cisco Unified Communica...
 
Share Point Workflow
Share Point WorkflowShare Point Workflow
Share Point Workflow
 
WEB
WEBWEB
WEB
 
CodeFest 2014. Коновалов А., Шкурко Д. — Разработка и оптимизация приложений ...
CodeFest 2014. Коновалов А., Шкурко Д. — Разработка и оптимизация приложений ...CodeFest 2014. Коновалов А., Шкурко Д. — Разработка и оптимизация приложений ...
CodeFest 2014. Коновалов А., Шкурко Д. — Разработка и оптимизация приложений ...
 
1С-Битрикс: Управление сайтом Версия .NET
1С-Битрикс: Управление сайтом Версия .NET1С-Битрикс: Управление сайтом Версия .NET
1С-Битрикс: Управление сайтом Версия .NET
 
Как за $5 и несколько вечеров сделать интегрированную новостную платформу
Как за $5 и несколько вечеров сделать интегрированную новостную платформуКак за $5 и несколько вечеров сделать интегрированную новостную платформу
Как за $5 и несколько вечеров сделать интегрированную новостную платформу
 
PhoneGap + Sencha
PhoneGap + SenchaPhoneGap + Sencha
PhoneGap + Sencha
 
Основы HTML - шесть лет спустя
Основы HTML - шесть лет спустяОсновы HTML - шесть лет спустя
Основы HTML - шесть лет спустя
 
Проверено и работает. Инструменты Oracle для разработки веб приложений
Проверено и работает. Инструменты Oracle для разработки веб приложенийПроверено и работает. Инструменты Oracle для разработки веб приложений
Проверено и работает. Инструменты Oracle для разработки веб приложений
 
Telerik Web aii
Telerik Web aiiTelerik Web aii
Telerik Web aii
 
битрикс Framework сергей рыжиков
битрикс Framework   сергей рыжиковбитрикс Framework   сергей рыжиков
битрикс Framework сергей рыжиков
 

Mais de GetDev.NET

Leap Motion - игрушка с заделом на будущее
Leap Motion - игрушка с заделом на будущееLeap Motion - игрушка с заделом на будущее
Leap Motion - игрушка с заделом на будущееGetDev.NET
 
Гирлянда для программистов
Гирлянда для программистовГирлянда для программистов
Гирлянда для программистовGetDev.NET
 
Mind Mapping, или как заставить свой мозг работать лучше
Mind Mapping, или как заставить свой мозг работать лучшеMind Mapping, или как заставить свой мозг работать лучше
Mind Mapping, или как заставить свой мозг работать лучшеGetDev.NET
 
Что нового в Visual Studio 2015
Что нового в Visual Studio 2015Что нового в Visual Studio 2015
Что нового в Visual Studio 2015GetDev.NET
 
Docker контейнерная революция
Docker контейнерная революцияDocker контейнерная революция
Docker контейнерная революцияGetDev.NET
 
PhoneGap для мобильного разработчика - глубокое погружение без ОЗК
PhoneGap для мобильного разработчика - глубокое погружение без ОЗКPhoneGap для мобильного разработчика - глубокое погружение без ОЗК
PhoneGap для мобильного разработчика - глубокое погружение без ОЗКGetDev.NET
 
ASP.NET Web API
ASP.NET Web APIASP.NET Web API
ASP.NET Web APIGetDev.NET
 
Что нового в Visual Studio 2013
Что нового в Visual Studio 2013Что нового в Visual Studio 2013
Что нового в Visual Studio 2013GetDev.NET
 
Создание повторно используемых бизнес моделей с помощью технологии Domain Com...
Создание повторно используемых бизнес моделей с помощью технологии Domain Com...Создание повторно используемых бизнес моделей с помощью технологии Domain Com...
Создание повторно используемых бизнес моделей с помощью технологии Domain Com...GetDev.NET
 
Lego Mindstorms
Lego MindstormsLego Mindstorms
Lego MindstormsGetDev.NET
 
Особенности мобильной платформы Windows Phone 8
Особенности мобильной платформы Windows Phone 8Особенности мобильной платформы Windows Phone 8
Особенности мобильной платформы Windows Phone 8GetDev.NET
 
Async Javascript
Async JavascriptAsync Javascript
Async JavascriptGetDev.NET
 
XAML - язык разметки приложений
XAML - язык разметки приложенийXAML - язык разметки приложений
XAML - язык разметки приложенийGetDev.NET
 
Dynamic Language Runtime
Dynamic Language RuntimeDynamic Language Runtime
Dynamic Language RuntimeGetDev.NET
 
JavaScript: хороший тон клиентской разработки
JavaScript: хороший тон клиентской разработкиJavaScript: хороший тон клиентской разработки
JavaScript: хороший тон клиентской разработкиGetDev.NET
 
ASP.NET, MVC, ASP.NET MVC
ASP.NET, MVC, ASP.NET MVCASP.NET, MVC, ASP.NET MVC
ASP.NET, MVC, ASP.NET MVCGetDev.NET
 
Обзор рекомендаций W3C
Обзор рекомендаций W3CОбзор рекомендаций W3C
Обзор рекомендаций W3CGetDev.NET
 

Mais de GetDev.NET (20)

Go
GoGo
Go
 
Leap Motion - игрушка с заделом на будущее
Leap Motion - игрушка с заделом на будущееLeap Motion - игрушка с заделом на будущее
Leap Motion - игрушка с заделом на будущее
 
Гирлянда для программистов
Гирлянда для программистовГирлянда для программистов
Гирлянда для программистов
 
Mind Mapping, или как заставить свой мозг работать лучше
Mind Mapping, или как заставить свой мозг работать лучшеMind Mapping, или как заставить свой мозг работать лучше
Mind Mapping, или как заставить свой мозг работать лучше
 
Что нового в Visual Studio 2015
Что нового в Visual Studio 2015Что нового в Visual Studio 2015
Что нового в Visual Studio 2015
 
Docker контейнерная революция
Docker контейнерная революцияDocker контейнерная революция
Docker контейнерная революция
 
PhoneGap для мобильного разработчика - глубокое погружение без ОЗК
PhoneGap для мобильного разработчика - глубокое погружение без ОЗКPhoneGap для мобильного разработчика - глубокое погружение без ОЗК
PhoneGap для мобильного разработчика - глубокое погружение без ОЗК
 
ASP.NET Web API
ASP.NET Web APIASP.NET Web API
ASP.NET Web API
 
Что нового в Visual Studio 2013
Что нового в Visual Studio 2013Что нового в Visual Studio 2013
Что нового в Visual Studio 2013
 
TypeScript
TypeScriptTypeScript
TypeScript
 
Создание повторно используемых бизнес моделей с помощью технологии Domain Com...
Создание повторно используемых бизнес моделей с помощью технологии Domain Com...Создание повторно используемых бизнес моделей с помощью технологии Domain Com...
Создание повторно используемых бизнес моделей с помощью технологии Domain Com...
 
Lego Mindstorms
Lego MindstormsLego Mindstorms
Lego Mindstorms
 
Особенности мобильной платформы Windows Phone 8
Особенности мобильной платформы Windows Phone 8Особенности мобильной платформы Windows Phone 8
Особенности мобильной платформы Windows Phone 8
 
Async Javascript
Async JavascriptAsync Javascript
Async Javascript
 
XAML - язык разметки приложений
XAML - язык разметки приложенийXAML - язык разметки приложений
XAML - язык разметки приложений
 
Dynamic Language Runtime
Dynamic Language RuntimeDynamic Language Runtime
Dynamic Language Runtime
 
JavaScript: хороший тон клиентской разработки
JavaScript: хороший тон клиентской разработкиJavaScript: хороший тон клиентской разработки
JavaScript: хороший тон клиентской разработки
 
ASP.NET MVC 4
ASP.NET MVC 4ASP.NET MVC 4
ASP.NET MVC 4
 
ASP.NET, MVC, ASP.NET MVC
ASP.NET, MVC, ASP.NET MVCASP.NET, MVC, ASP.NET MVC
ASP.NET, MVC, ASP.NET MVC
 
Обзор рекомендаций W3C
Обзор рекомендаций W3CОбзор рекомендаций W3C
Обзор рекомендаций W3C
 

Обзор Html 5

  • 1. ОБЗОР HTML 5по следам #html5camp Сергей Звягин Ingate Development
  • 2. Что такое html5? 19.02.2011 Ingate Development / TulaDev.NET 2
  • 3. Семантика 19.02.2011 Ingate Development / TulaDev.NET 3
  • 4. Семантическая разметка Было Стало 19.02.2011 Ingate Development / TulaDev.NET 4 Страница свёрстана с использованием элементов div и присвоенных каждому из них классов CSS. Исходный код не отражает идеи дизайнера, он сложен для восприятия. Страница свёрстана с использованием новых семантических элементов HTML5. Название каждого блока соответствует его цели на странице. Исходный код лёгок для восприятия.
  • 5. Семантическая разметка Теги не должны определять отображение Главная цель тегов – смысловая нагрузка Разрешены перекрывающиеся теги Бинарные атрибуты не имеют значений 19.02.2011 Ingate Development / TulaDev.NET 5
  • 6. Семантическая разметка Новые семантические теги: <header> <footer> <article> <section> <nav> <aside> <figure> <figcaption> <progress> и другие 19.02.2011 Ingate Development / TulaDev.NET 6
  • 7. Семантическая разметка Уже существующие теги получили семантический оттенок Например: <i> - интонация <strong> - важность <b> - выделение без указания важности 19.02.2011 Ingate Development / TulaDev.NET 7
  • 8. Web forms 2.o Новые типы полей ввода: range search color email url date time telи другие Спецификация НЕ описывает как они должны отображаться 19.02.2011 Ingate Development / TulaDev.NET 8
  • 9. Microdata расширение текущего механизма микроформатов набор пар ключ-значение, добавленных в документ параллельно основному контенту нацелено на автоматизированные парсеры (напр., поисковые роботы) 19.02.2011 Ingate Development / TulaDev.NET 9
  • 10. Microdata Пример: <section itemscopeitemtype="http://example.org/animals#cat"> <h1 itemprop="name http://example.com/fn">Hedral</h1> <p itemprop="desc"> Hedral is a male american domesticshorthair, with a fluffy <spanitemprop="http://example.com/color">black</span> fur with <spanitemprop="http://example.com/color">white</span> paws and belly. </p> <imgitemprop="img"src="hedral.jpeg" alt="" title="Hedral, age 18 months"/> </section> 19.02.2011 Ingate Development / TulaDev.NET 10
  • 11. CSS3 и стилизация 19.02.2011 Ingate Development / TulaDev.NET 11
  • 12. CSS3: Прозрачность Было Стало background-color: rgb(0,0,255); opacity: 0.5; Все потомки элемента наследуют свойство opacity background-color: rgba(0,0,255,0.5); Прозрачность получит только фон конкретного элемента 19.02.2011 Ingate Development / TulaDev.NET 12
  • 13. CSS3: фоновые изображения 19.02.2011 Ingate Development / TulaDev.NET 13 Указание размера фоновой картинки .backgroundsize { background: url(logo.gif); background-size: 203px 45px; } Использование нескольких фоновых картинок .multiplebackgrounds { background: url(top.gif) top left no-repeat, url(bottom.gif) bottom left no-repeat, url(middle.gif) left repeat-y; }
  • 14. CSS3: Границы и тени 19.02.2011 Ingate Development / TulaDev.NET 14 Закругленные углы .border_rounded { border: 2px solid #897048; border-radius: 5px; } Тени .border_shadow { box-shadow: 10px 10px 5px #888; } .text_shadow { text-shadow: 2px 2px2px #ddccb5; }
  • 15. CSS3: трансформации 19.02.2011 Ingate Development / TulaDev.NET 15 Растягивание блоков .ui_resizable{ resize: both; } Трансформация .transform_elementa:hover { transform: scale(1.15) rotate(-5deg); }
  • 16. Web Open Font Format 19.02.2011 Ingate Development / TulaDev.NET 16 Сжатый OpenTypeили TrueType шрифт Нет возможности шифрования Пример: @font-face { font-family: 'MyFontFamily'; src: url('myfont-webfont.eot?') format('eot'), url('myfont-webfont.woff') format('woff'), url('myfont-webfont.ttf') format('truetype'), url('myfont-webfont.svg#name')format('svg'); }
  • 17. 3D, графика и эффекты 19.02.2011 Ingate Development / TulaDev.NET 17
  • 18. SVG 19.02.2011 Ingate Development / TulaDev.NET 18 Xml-подобный язык для визуального описания векторной графики Первый черновик спецификации создан аж в 1998 году Индексируется поисковыми машинами 2 варианта анимации: SMIL или CSSTransform
  • 19. SVG 19.02.2011 Ingate Development / TulaDev.NET 19 Пример: <rect x="100" y="100« width="550" height="550« fill="#FAFAA2" stroke="#000« /> <circle cx="100" cy="100"r="275« fill="#FAFAA2" stroke="#000« /> <line x1="230" y1="570" x2="640" y2="490« stroke="#000« />
  • 20. SVG 19.02.2011 Ingate Development / TulaDev.NET 20 DOM модель у SVG и HTML одинаковая Следовательно можно изменять отдельные блоки посредством JavaScript Медиа-выражения позволяют добавлять условные блоки
  • 21. Canvas 19.02.2011 Ingate Development / TulaDev.NET 21 Набор API для создания и управления растровой графикой при помощи JavaScript HTML: <canvas id="canvas"> width="600" height="600"></canvas> JavaScript: varcanvas = document.getElementyId('canvas').getContext('2d'); canvas.rect( 25, 25, 550, 550 ); canvas.fillStyle= '#FAFAA2'; canvas.strokeStyle= '#000'; canvas.lineWidth= 50;
  • 22. WebGL 19.02.2011 Ingate Development / TulaDev.NET 22 Развитие эксперимента Canvas 3D Графика аппаратно ускорена Первая черновая спецификация стандарта опубликована 10 декабря 2009 года
  • 23. Мультимедиа 19.02.2011 Ingate Development / TulaDev.NET 23
  • 24. Audio и Video 19.02.2011 Ingate Development / TulaDev.NET 24 Не нужно никаких дополнительных кодеков, установленных программ или кода Набор воспроизводимых форматов ограничен Спецификация не предоставляет описания, как должны выглядеть элементы управления
  • 25. Audio и Video 19.02.2011 Ingate Development / TulaDev.NET 25 Поддержка разных форматов аудио различными браузерами: * Информация приведена для браузеров Opera 11, Firefox 4 beta, IE9 beta, Chrome 9, Safari 5
  • 26. Audio и Video 19.02.2011 Ingate Development / TulaDev.NET 26 Поддержка разных форматов видео различными браузерами: * Информация приведена для браузеров Opera 11, Firefox 4 beta, IE9 beta, Chrome 9, Safari 5
  • 27. Автономная работа и локальные хранилища 19.02.2011 Ingate Development / TulaDev.NET 27
  • 28. Offline & sTORAGE 19.02.2011 Ingate Development / TulaDev.NET 28 Offline Application Caching API Web Storage Indexed Database API File API Web SQL Database
  • 29. HTML5 App Cache 19.02.2011 Ingate Development / TulaDev.NET 29 Можно принудительно указать какие файлы кешируются браузером, а какие нет: HTML: <!DOCTYPE HTML> <html manifest="cache-manifest"> ... Manifest File (text/cache-manifest): CACHE MANIFEST index.html style/default.css images/logo.png NETWORK: server.cgi
  • 30. Web Storage 19.02.2011 Ingate Development / TulaDev.NET 30 Можно хранить состояние для сайта в течение короткого или длительного промежутка времени Используются объекты sessionStorageи localStorage Предполагается использовать как замену Cookies
  • 31. Indexed DB 19.02.2011 Ingate Development / TulaDev.NET 31 Возможность хранения пар ключ-значение Индексы, курсоры, транзакции… 2 API для работы с базой: синхронный и асинхронный
  • 32. Indexed DB 19.02.2011 Ingate Development / TulaDev.NET 32 Пример: vardb = indexedDB.open('books', 'Book store', false); if (db.version !== '1.0') { varolddb = indexedDB.open('books', 'Book store'); olddb.createObjectStore('books', 'isbn'); olddb.createIndex('BookAuthor', 'books', 'author', false); olddb.setVersion("1.0"); } varindex = db.openIndex('BookAuthor'); var matching = index.get('fred'); if (matching) report(matching.isbn, matching.name, matching.author); else report(null);
  • 33. File API 19.02.2011 Ingate Development / TulaDev.NET 33 Контроль процесса загрузки файла на сервер Можно работать с содержимым файла до отправки на сервер (объект FileReader) Возможность выбирать сразу несколько файлов
  • 34. Взаимодействие клиента и сервера 19.02.2011 Ingate Development / TulaDev.NET 34
  • 35. Web sockets 19.02.2011 Ingate Development / TulaDev.NET 35 протокол полнодуплексной двунаправленной связи поверх TCP соединения, предназначенный для обмена сообщениями между браузером и веб-сервером в режиме реального времени W3C занимается стандартизацией API Web Sockets, а IETF занимается утверждением протокола Web Socket
  • 36. Web sockets 19.02.2011 Ingate Development / TulaDev.NET 36 Пример: <script> varwebSocket = new WebSocket('ws://localhost/echo'); webSocket.onopen= function(event) { alert('onopen'); webSocket.send("Hello Web Socket!"); }; webSocket.onmessage= function(event) { alert('onmessage, ' + event.data); webSocket.close(); }; webSocket.onclose= function(event) { alert('onclose'); }; </script>
  • 37. Server-Sent Events 19.02.2011 Ingate Development / TulaDev.NET 37 Способ получения данных от сервера Нет никакой обработки ошибок Пример: <event-source src="http://example.com/ticker.php" id="stock"> <script type="text/javascript"> document.getElementById('stock') .addEventListener('stock change', function () { var data = event.data.split(''); updateStocks(data[0], data[1], data[2]); }, false); </script>
  • 38. Доступ к устройствам 19.02.2011 Ingate Development / TulaDev.NET 38
  • 39. Geolocation API 19.02.2011 Ingate Development / TulaDev.NET 39 Позволяет определить местоположение пользователя Используется только с согласия пользователя Предоставляет 2 метода: можно узнать местоположение разово или подписаться на изменение местоположения
  • 40. <device> 19.02.2011 Ingate Development / TulaDev.NET 40 Доступ к веб-камере, микрофону, плееру, сканеру… Есть возможность захвата данных (объект StreamRecorder) и последующей работы с ними (например отправки на сервер посредством File API) На данный момент ни одна стабильная версия браузеров не поддерживает работу с тегом <device> 
  • 42. Web Workers 19.02.2011 Ingate Development / TulaDev.NET 42 Перенос части клиентского кода в отдельный поток При создании объекта Worker указывается путь к исполняемому скрипту Исполняемый скрипт вызывает метод postMessage В этот момент у объекта Worker возникает событие onmessage Удобно использовать в сочетании с другими рассмотренными ранее API: IndexedDB, WebSockets…
  • 43. XHR level 2 19.02.2011 Ingate Development / TulaDev.NET 43 Добавлено событие изменения прогресса Поддерживается работа с бинарными данными Появилась поддержка кросс-доменных запросов
  • 44. Navigation Timing 19.02.2011 Ingate Development / TulaDev.NET 44 На данный момент довольно сложно определить, почему страница загружается в браузере долго Профайлеры помогают не всегда Navigation Timing – решение для измерения скорости загрузки страницы API предоставляет 2 объекта performance.timing и performance.navigation
  • 45. Navigation Timing 19.02.2011 Ingate Development / TulaDev.NET 45
  • 46. Это всё? 19.02.2011 Ingate Development / TulaDev.NET 46
  • 47. Вопросы 19.02.2011 Ingate Development / TulaDev.NET 47
  • 48. Сергей Звягин Ingate Development Twitter: @Bingo87 Специально для TulaDev.NET ОБЗОР HTML 5