Майбутнє HTML: Частина 1. WHATWG

HTML – це не дуже гарна мова для розробки web-сторінок. Тим не менш, ця мова давно визнаний хорошим мовою для створення всесвітньої павутини.


Простота вивчення HTML і можливість перегляду вихідного коду браузерами збільшила популярність інтернету вельми дивним чином. Залучення консорціуму W3C (World Wide Web Consortium) до стандартизації HTML забезпечило те, що всі web-браузери більшою чи меншою мірою сумісні з одним і тим же діалектом один і той же діалект. Поява CSS і пов'язане з цим зростання web-проектів, заснованих на цьому стандарті як передовому досвіді, запобігло хаос в HTML і призвело до поліпшення умов роботи як для користувачів, так і для розробників.


Багато що з цього ви, ймовірно, знаєте. Сформований в результаті цього інтернет, можливо, зробив позитивний вплив на ваше життя або бізнесу. Але факт залишається фактом, HTML – не дуже гарна мова. Навіщо, наприклад, в HTML заголовки з H1 по H6? Хто хоч раз серйозно використовував шестирівневу ієрархію заголовків? І чому в наше століття відеокарт з 3D-прискоренням і складних користувальницьких інтерфейсів web-сторінки обмежені використанням для введення призначених для користувача даних незграбними текстовими полями і перемикачами?


Тому не дивуйтеся, що різні групи знову починають розробляти HTML способом, який дозволяє web-виданням і web-додаткам використовувати більше технологій, доступних у сучасному інтерфейсі користувача. Хто ці люди? У загальному сенсі їх можна розділити на три групи. Перша група – це ті, хто використовує існуючі технології, щоб отримати інший результат. Саме навколо цього обертаються Asynchronous JavaScript і XML (Ajax): використання JavaScript і об'єкта браузера XMLHttpRequest для створення динамічних інтерфейсів користувача. Ефект може бути дивним, але це не можна назвати звичайним шляхом руху вперед.


Інші дві групи концентруються на майбутніх удосконалень. W3C пропагує XHTML 2.0, грунтуючись на вимогах широкого кола розробників – не тільки тих, хто робить браузери для робочого столу. XHTML 2.0 розглядається як радикальний крок. Навпаки, робоча група з розробки гіпертекстових додатків для інтернету (Web Hypertext Application Technology Working Group, WHATWG) пропонує набір поетапних специфікацій, які дозволяють HTML додавати найнагальніші функції в браузер. Деякі функції WHATWG вже реалізовані в браузері Safari для Apple і в Mozilla Firefox 1.5.


У наших статтях буде розглянута робота двох останніх груп: W3C і WHATWG. Технологія Ajax вже розглядалася в інших розділах сайту developerWorks (див. розділ Ресурси). Хоча до цих пір не вибухнула війна стандартів на сходах, яка призвела HTML на перше місце в ієрархії W3C, ці дві організації не завжди приходять до згоди з питання, в якому напрямку має розвиватися HTML. Я поясню і дам оцінку цим двом підходам.


WHATWG, HTML 5 і Web Forms 2.0


Як стверджується на web-сторінці робочої групи, WHATWG – це "вільна неофіційна асоціація виробників Web-браузерів і сторін, зацікавлених в розробці нових технологій, яка має на меті надати авторам можливість писати і розміщувати програми через інтернет ". Тут особливо заслуговують уваги два терміни: Головні діячі групи WHATWG займаються браузерами (Mozilla, Opera), і спрямування їх удосконалень стосується створення web-додатків.


Головна специфікація WHATWG має кодове ім'я HTML5, але вона більше відома як Web Applications 1.0 (див. розділ Ресурси). Специфікація HTML5 призначена для збереження зворотного функціональної сумісності з поточним стандартом HTML, HTML 4.01, а також з XHTML 1.0, XML-версією HTML. Ця специфікація підтримує і HTML, і XHTML модифікації W3C HTML, хоча і зазначає, що реалізації можуть не підтримувати цих технологій.


Крім HTML5, специфікація Web Forms 2.0 (див. розділ Ресурси) намагається вирішити багато з проблем, які розробники знаходять в поточному стані HTML-форм. Сьогоднішні форми не використовують багато основних функції звичайних програм для настільних комп'ютерів, таких як перевірка коректності та функціональні віджети.


Що ж входить в HTML5? Якщо коротко, то багато всього. Специфікація Web Applications 1.0 тільки розвивається, і деякі з згадуваних функцій більш повно розроблені, ніж інші. Ось дуже загальний опис нових функцій:



Багато чого з описаного вище в сучасному інтернеті знайшло своє втілення у функціях, реалізованих у вигляді одиничних розробок на JavaScript. Дійсно, недавнє зростання популярності наборів інструментів Ajax привів до поширення віджетів – вимірників, календарів і т. д.


Елемент canvas


Традиційна реалізація функцій HTML5 – тобто, у вигляді компонентів web-браузера – сьогодні обмежується декількома технологіями, згадуваними вище. Найбільш відомий з них елемент canvas. Браузери Firefox 1.5 Apple "s Safari також реалізують canvas.


Хоча мова масштабованої векторної графіки Scalable Vector Graphics (SVG) W3C вже надає спосіб показу ілюстрацій всередині браузера, canvas пропонує інший підхід. Замість того, щоб реалізувати декларативний документ, як SVG, він надає чисту поверхню для малювання за допомогою JavaScript. Ця модель імперативної графіки набагато більше зобов'язана своєю появою малювання в стилі OpenGL, ніж декларативним інтернету.


Малюнок 1 надає собою знімок екрану простого прикладу canvas. (Див. в розділі Ресурси – ви можете переглянути його за допомогою браузерів Apple "s Safari або версії Firefox 1.5.) Коли користувач поміщає миша над фігурою, фігура трохи збільшується. Крім усього іншого, приклад показує, що тут використовуються всі необхідні інгредієнти для реалізації інтерфейсу користувача – малюнки події для користувача введення та лічильники.

Малюнок 1. Знімок екрану інтерактивного прикладу canvas


canvas-Додатки ще на один крок наблизилися до свого очевидного слідству (ігри!) завдяки реалізації простого 3D-лабіринту, показаного на малюнку 2. (Див. в розділі Ресурси посилання на працюючий лабіринт.)

Малюнок 2. Знімок екрану простої гри-лабіринту


Щоб отримати уявлення про те, як програмувати canvas, Розглянемо простий приклад програми. Лістинг 1 являє собою самостійний приклад, кінцевий результат якого показаний на малюнку 3.


Лістинг 1. Простий приклад canvas




<html>
<head>
<title>Canvas demo</title>
<script type=”text/javascript”>
function draw () {
var canvas = document.getElementById (“hello”);
if (canvas.getContext) {
var ctx = canvas.getContext(“2d”);
ctx.fillRect (25, 25, 50, 50);
}
}
</script>
<style type=”text/css”>
canvas { border: 2px solid red; }
</style>
</head>
<body onload=”draw ();”>
<canvas id="hello" width="100" height="100"> </ canvas>
</body>
</html>

Малюнок 3. Висновок лістингу 1


Час покаже, чи виявиться canvas корисним в основному web-оснащенні. Його функції чимось схожі на функції Java-аплетів, крім того, його інтерфейс JavaScript набагато спрощує використання та взаємодія з іншими елементами браузера.


Web Forms 2.0


Номер версії специфікації форм WHATWG вказує на її намір створити специфікацію форм у HTML4. На противагу специфікації web-додатків (HTML5), вона знаходиться в більш зрілому стані. Крім того, область застосування Web Forms 2.0 більш обмежена – специфікація концентрується на удосконаленні віджетів форм у браузері.


Що додає ця нова редакція у форми? Крім всього іншого:



Web Forms – це менш суперечлива специфікація, ніж HTML5, тому вже є деякі її реалізації:



Відповіддю W3C на наступне покоління форм стала специфікація XForms. XForms відрізняється від Web Forms 2.0 тим, що розробляє нову модель взаємодії браузер-сервер на основі переданих документів XML. Навпаки, Web Forms 2.0 представляє собою поетапне оновлення існуючих моделей форм, призначене для того, щоб зробити існуючі форми браузерів більш зручними у використанні. Ці дві специфікації відповідають різним потребам, хоча явно демонструють деяку спільність. У виразах специфікації Web Forms:


Ця специфікація являє собою спробу додати деякі функції XForms з мінімальним впливом на існуючі, широко поширені моделі форм. Скрізь, де це відповідало ситуації та завданням зворотної сумісності, простоті написання та реалізації був наданий пріоритет над технічною бездоганністю.

Інші реалізації


canvas – Це головна функція WHATWG, реалізована в браузерах. Решта розробки HTML5 все ще знаходяться на ранніх стадіях розвитку і, можливо, ніколи не будуть реалізовані у всій повноті.


Тим не менш, специфікації Web Applications і Web Forms сьогодні отримують новий зміст, що, швидше за все, не можна було передбачити при перших спробах реалізації. В останні місяці з'явилося кілька повнофункціональних проектів розробки інструментів інтерфейсу користувача для web-додатків. У цих реалізаціях використовується HTML і такі технології, як JavaScript або Flash. Багато хто з розробників проектів, можливо, погодяться з думкою, що немає сенсу знову винаходити колесо, і будуть розглядати аспекти специфікацій WHATWG як засіб для стандартизації, наприклад, своїх реалізацій форм.


Висновок


Специфікація Web Forms 2.0, в силу очевидної потреби в ній та повноти самій специфікації, отримала гарну можливість знайти реалізацію і пройти свій шлях до визнання загальним стандартом. Дійсно, специфікація Web Forms 2.0, передана на розгляд в W3C, була розцінена як затвердження положення та компоновочне блок від співробітників WHATWG.


Тим не менш, важко скласти чітку картину майбутнього HTML тільки по одній специфікації WHATWG. Деякі частини специфікації просто описують вже існуючі нововведення – XMLHttpRequest, canvas, Тоді як інші виглядають розпливчастими, котрі відчувають нестачу в підтримці з боку реалізаторів. Крім того, мотивацією для HTML5 є, головним чином, використання на персональних комп'ютерах з орієнтацією на додатки. Багато чого з HTML тепер застосовується не тільки на ПК, але і на інших пристроях, і це теж потребує розвитку.


Деякі кращі ідеї, визначені в HTML5, можуть виявитися застарілими внаслідок розвитку і зростання інструментів, які використовують інтерфейс браузера на основі технологій Ajax. Чому розробники повинні погоджуватися з обмеженим набором віджетів, визначених у документі, якщо вони можуть працювати з розширюваним набором інструментів? Можливо, було б непогано, щоб більш функціональні web-інтерфейси пройшли стандартизацію на ринку, а не в робочій групі.


Я щасливий, що спостерігаю прогрес в описаних мною повсюдно реалізованих, але все ще нестандартизованих технологіях, таких як canvas і XMLHttpRequest, І сподіваюся, що це сприятиме підвищенню функціональної сумісності цих важливих функцій. Щоб сприяти розвитку самої технології браузерів, HTML5 потребує більшої ясності; вона дуже виграла від розділення на три специфікації, що охоплюють функції, доступні зараз, доступні незабаром і передбачувані.

Частина 2. XHTML 2.0

Схожі статті:


Сподобалася стаття? Ви можете залишити відгук або підписатися на RSS , щоб автоматично отримувати інформацію про нові статтях.

Коментарів поки що немає.

Ваш отзыв

Поділ на параграфи відбувається автоматично, адреса електронної пошти ніколи не буде опублікований, допустимий HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

*

*