Изучаем HTML 5-Б. Лоусон, Р. Шарп - 2011 |
Страница 7 из 244 ? впервые определить обработку ошибок; ? доработать язык для упрощения создания веб-приложений. Не разрушать существующие веб-страницы Многие современные методы разработки основываются на недокументированных (или, как минимум, не указанных в спецификации) свойствах, которые с течением времени встраивались в браузеры. Например, XMLHTTPRequest (XHR) обеспечивает работу несметного числа сайтов на основе А)ах. Эта технология была изобретена компанией Microsoft, затем переработана и встроена во все другие браузеры, но никогда не была определена как стандарт (до тех пор, пока Анне ван Кестерен из Opera наконец не определила его как часть WHATWG). Подумать только, такая жизненно необходимая часть многих сайтов реализована как побочный продукт! Поэтому одной из первых задач HTML5 было создание документации для того, что еще не задокументировано, и тем самым повысить интероперабель-ность, избавляя авторов Сети и разработчиков браузеров от работы «вслепую». Также необходимо было однозначно определить, как браузеры и другие агенты пользователей должны поступать с неправильной разметкой. В мире XML это не было проблемой; в XML используется «драконовская обработка ошибок», при которой браузер должен остановить процесс отображения при обнаружении ошибки. Одной из причин повсеместного распространения и успеха Сети было (по моему мнению) то, что даже для плохого кода вероятность, что он будет отображаться в некоторых или всех браузерах, была ненулевой. Барьер, который необходимо было преодолеть для публикации в Сети, был очень низким, но каждый браузер был вправе решать, как он будет отображать плохой код. Простой код, такой как <bxi>Heiio mum! </bx/i> (обратите внимание на неправильно расположенные закрывающие теги), создает разные объектные модели документов (DOM) в разных браузерах. Из-за этого одни и те же таблицы стилей могут отображаться совершенно по-разному, а написание JavaScript-кода, работающего во всех браузерах, может стать гораздо более сложной задачей. Непротиворечивые объектные модели документов (DOM) настолько важны для HTML5, что сам язык определен в терминах DOM. В интересах повышения интероперабельности важно, чтобы обработка ошибок была одинаковой во всех браузерах и таким образом создавала абсолютно такую же DOM даже для невалидного HTML. Чтобы это было так, кто-то должен был |