+ удачные практики

advertisement
Internet Explorer и HTML5.
Настоящее и будущее вебтехнологий
Константин Кичинский, Microsoft
@kichinsky
konkich@microsoft.com
1. История
HTML 4.01
1999-н.в.
Adobe Flash Player
эволюция
Microsoft Silverlight
JavaScript Frameworks “client side”
+ удачные практики
RIA, AJAX & Web Apps
Web 2.0 & Social Networks
Online Video & Audio
WebCam & Mic
Mobile Web & Geolocation
CPU, MultiCore & GPU
JavaScript Performance
Веб изменился.
(и ожидания от веба тоже)
HTML нет.
(без изменений более 11 лет)
Нативная поддержка
Полноправные элементы
Открытые технологии
— Мы все любим
HTML5!
2. Что такое HTML5?
Разработчики могут использовать
HTML5 уже сегодня и мы призываем
их делать это.
Ian Jacobs, W3C
*Как мы смотри на стандарты
 Приоритезация
 Функциональность vs. скорость vs. безопасность
 Стабильные
 Реализация в основной версии Internet Explorer
 Вполне стабильные
 Префиксы -ms-
 Нестабильные, но интересные
 http://html5labs.com




IndexedDB
WebSockets
FileAPI
MediaCapture API (скоро)
Есть два HTML5.
Спецификация HTML5
Другие спецификации
HTML5
“HTML5“
“HTML5 Core”
“HTML5 Extended“
Семантика
Мультимедиа
Динамичная графика
Веб-формы
JavaScript APIs
Самое время
для демок!
3. Семантика
семантика == смысл
сегодня
содержание != представление
таблицы для таблиц
блоки для блоков
id & class
микроформаты
завтра*
семантическая структура
семантический текст
больше смысла
нет «стилевым» элементам
атрибуты со смыслом
* на самом деле, тоже уже сегодня
Семантика вчера и сегодня
<div class="header">
<h1>...</h1>
<h2>...</h2>
</div>
<div class="section">
<div class="article">...</div>
</div>
<div class="sidebar">...</div>
<div class="footer">...</footer>
Семантика сегодня и завтра
<header>
<h1>...</h1>
<h2>...</h2>
</header>
<section>
<article>...</article>
</section>
<aside>...</aside>
<footer>...</footer>
структура
<header>
<hgroup>
<nav>
<section>
<article>
<figure> & <figcapture>
<aside>
<footer>
Семантические
элементы
И как заставить их работать в старых
браузерах?
контент
<mark>
<ruby>, <rt> & <rp>
<bdi>
<wbr>
<summary> & <details>
<time>
<embed>
(добавлен официально)
Больше
смысла
<dl>
<cite>
<menu>
<address>
<hr>
<small>
<em> & <i>
<strong> & <b>
<s>
Разметка текста
И отделение верстки от представления.
data-*
собственные атрибуты
для хранения данных
role & aria-*
для совместимости с WAIARIA
(Accessible Rich Internet
Applications)
4. Мультимедиа и графика
<audio> & <video>
Audio и Video
 Доступны через DOM
 Управление из JavaScript
 Интеграция с другими элементами
Audio
<audio id="myAudio" controls loop >
<source src="elvis.mp3" />
<source src="elvis.ogg" />
</audio>
Video
<video id="myVideo" width="640" height="480"
poster="images/elvis.jpg" />
<script>
function loadVideo() {
var player = document.getElementById("myVideo");
player.src = "media/elvis.mp4";
player.setAttribute("autoload", "autoload");
player.play();
}
</script>
Примеры
Audio и Video
<audio> +
MP3 & AAC
<video> +
MPEG-4/H.264 & VP8 (WebM)
(аппаратное ускорение, GPUдекодирование)
MP3
WAV
AAC
Ogg
Vorbis
H.264
VP8
(WebM)
Ogg Theora
MS Plugin
Go Plugin
* if codec
MS Plugin
DRM
адаптации качества
нет
(Smooth Streaming in Silverligt)
fullscreen-режима
одного стандартного кодека
общего стиля для контролов
(и стилизации контролов)
<canvas> & <svg>
<canvas>
<svg>
Что такое Canvas?
Canvas — холст для растровой графики
+ JS API для отрисовки базовых примитивов (линии,
прямоугольники, текст, изображения, трансформации…)
 HTML5: <canvas>
 HTML Canvas 2D Context
 http://www.w3.org/TR/2dcontext/
Что такое SVG?
SVG = Scalable Vector Graphics
+ XML-based
+ DOM
+ JS для манипуляций
 HTML5: <svg>
+ <img src="elvis.svg" … />
+ <object data="elvis.svg" type="image/svg+xml" … />
 http://www.w3.org/TR/SVG/
Примеры
Canvas и SVG
Сложные сцены
с множеством
объектов
Динамичные
изображения
Интерактивные
диаграммы и
графики
Статичные
изображения
<svg>
<canvas>
2D-игры
Обработка
видео и графики
Веб-реклама
Документы
с высокой
точностью
для просмотра и
печати
5. Специальные API
Новые API для JavaScript





API для аудио и видео
API для работы веб-приложений в offline
Editing API (+contenteditable)
Drag & Drop API для перетаскивания элементов
History API для контроля над историей сессии
 Polyfill: https://github.com/balupton/history.js
Примеры
работы с JS APIs
6. Будущее
?
маркетинг?
игрушки?
новые сценарии
развития веба
1. Веб-стандарты и плагины
2. > { Markup + Style + Script }
3. Web Apps ~ Apps
Новые сценарии развития
веба
1. Веб-стандарты и плагины
2. > { Markup + Style + Script }
3. Web Apps ~ Apps
+
будущее веба
(не только) маркетинг
большая
спецификация
(пока) не закончена
хотим совместимости
хотим надежности
это круто!
Обратная связь
Ваше мнение очень важно для нас. Пожалуйста, оцените
доклад, заполните анкету и сдайте ее при выходе из зала
Спасибо!
Вопросы
 CL 603
 Константин Кичинский
 konkich@microsoft.com
 @kihcinsky
 blogs.msdn.com/kichinsky
 Вы сможете задать вопросы докладчику в зоне «Спроси
эксперта» в течение часа после завершения этого
доклада
Download