В «Избранное»/Сделать стартовой 
 
Что нового в Windows 7 для пользователей Блог Engineering Windows 7 на TheVista.Ru Коллекция обоев региональных сборок Windows 7 Информер для вашего сайта
  Войти   Зарегистрироваться     Забыли пароль?
 

houseboy (Редакция: deeper2k) @05.04.2010 11:41
Просмотры (только пользователи): 1121
Комментарии: (1)
Рейтинг:

Поддержка событий DOM Level 3 в IE9

Интероперабельные DOM-события являются ключевой частью обещаний относительно "единой разметки" HTML5. Благодаря поддержке DOM-событий в IE9 веб-разработчики могут создавать более интероперабельный код, используя модель событий, которая является более четкой, и предлагать дополнительные функции, которые не представлялись возможными в предыдущих версиях IE .

При авторинге кода событий JavaScript для IE8 или предыдущих версий браузера, веб-разработчикам приходилось создавать отдельный код для IE. Так, к примеру, большинство страниц, на которых используется кросс-браузерный код событий, использует такой код:

Код:
if ( <addEventListener detect> ) {
    // Модель событий W3C DOM
    // Поддерживается в Firefox, Chrome, Safari, Opera и (теперь) IE9
}
else if ( <IE or attachEvent detect> ) {
    // Код для модели событий предудущих версий IE
}

Как вариант, веб-разработчики могут использовать "традиционные" модели событий (событийные атрибуты HTML), поскольку они предлагают наиболее интероперабельные возможности. Тем не менее, это приводит к колоссальной потере функциональности. Издатели JavaScript пытаются устранить различия в реализации моделей событий, но часто это приводило к падению производительности.

С IE9 вы можете создавать ту же разметку и сценарии, и они будут работать во всех браузерах без ущерба для функциональности и производительности. Ознакомьтесь с рекомендациями в целях обеспечения корректной работы обработки событий в IE9. Предварительная версия IE9 позволит вам увидеть, как ваш код будет работать в IE9. Мы рекомендуем своевременно сообщать о проблемах, найденных в IE9. Поскольку IE9 находится в разработке, документация к релизу и база данных ошибок поможет вам понять, решена ли найденная вами проблема.

"Единая разметка" сквозь стандарты
Сегодня разметка по-разному отображается в разных браузерах. Поддержка в в IE9 событий DOM Level 3 является огромным шагом вперед, но не в полной мере решает эту проблему. Именно поэтому мы работаем в W3C для создания высококачественных спецификаций и набора тестов с целью обеспечить интероперабельность браузеров.

Вот уже несколько лет мы работаем с организацией W3C, чтобы внести свой вклад и отзывы о последней версии DOM. По утверждении модель "Level 3" заменит своего почти 10-летнего предшественника, модель DOM Level 2. Это большая честь для нас работать на регулярной основе с членами этой группы, представителями индустрии, а также другими разработчиками браузеров для того, чтобы реализуемые спецификации отвечали сценариям веб-разработчиков и подняли планку интероперабельности.

Есть две отдельные части спецификации DOM Level 3, которым я особенно рад с точки зрения интероперабельности. Во-первых, события "mouseenter/mouseleave" и "focusin/focusout" были недавно одобрены в свзи с их полезностью и широкой распространенностью в Интернете.

Второй - это интерфейс событий Keyboard. Знали ли вы, что события "keydown" "keyup" и "keypress" (представлены во всех браузерах) никогда не были стандартизированы? Это лишь одна из причин, почему веб-разработчики не имеют "единой разметки" (скриптов), работающих во всех браузерах в отношении клавиатуры.

В предварительной версии IE9 впервые реализован интерфейс событий Keyboard из спефицикации DOM Level 3. Этот интерфейс определяет модель взаимодействия с клавиатурой, которая решает давние вопросы интернационализации, а также предоставляет удобную высокоуровневую абстракцию клавиатуры (на основе Unicode). Естественно, мы считаем, что предыдущие низкоуровневые интерфейсы клавиатуры (например, "keyCode"), хотя и не на 100% совместимы, будут сосуществовать в браузерах для обеспечения обратной совместимости. Мы будем рады услышать отзывы по этому интерфейсу. А те из вас, кто желает направить свой отзыв прямо в нашу рабочую группу, пишите на www-dom@w3.org.

В целях по обеспечению совместимости мы внесли в первоначальный набор тестов для DOM Level 3 и планируем вносить и дальше в будущие обновления тестового центра. По мере эволюции спецификаций в направлении рекомендаций эти тесты могут и должны эволюционировать. Мы надеемся получить обратную связь и будем приветствовать отзывы сообщества и авторов других реализаций, чтобы создать тестовый набор DOM Level 3, который будет отвечать целям обеспечения интероперабельности.


Отличия от ранее используемой модели событий IE
В целом модель событий DOM (как Level 2, так и Level 3) решает многие сценарии, которыех в предыдущей модели IE не было вовсе. Например, новые события DOM позволяют следующие сценарии работы во всех браузерах:

    "Универсальный" слушатель может быть зарегистрирован на поддереве DOM для события, которое не раздувается (требуется "фаза захвата").
  • Гарантированный сигнал активации для нескольких слушателей на одном узле.
  • Способность сообщать, на каком узле в настоящее время происходит поток событий (currentTarget).

В результате поддержки новой модели IE9 в стандартном режиме добавил несколько изменений в некоторые существующие события в первую сборку предварительной версии. Все эти изменения ограничиваются режимом стандартов IE9. Например:

    Умолчания вздутие/отмена для многих событий, измененных в соответствии со стандартом.
  • Регистрации слушателя событий для старых событий, поддерживаемых в рамках новой модели (с использованием attachEvent/detachEvent), использует тот же сигнал активации, что и addEventListener.
  • Регистрация с помощью атрибутов событий HTML (и их свойств) одновременно активирует MSEventObj (объект старых событий) через свойства window.event, а также новые события DOM через параметр обработчика событий. Это сделано, поскольку атрибут события HTML неоднозначен, то есть какую модель ждет веб-разработчик - новую или старую?

Мы создали интерактивное демо, чтобы продемонстрировать некоторые из функций модели DOM. Посмотрите его на сайте IE9 Test Drive. Мы также показали простой пример того, как события DOM могут быть использованы на практике. Посмотрите его в предварительной версии IE9, а затем посмотрите его в другом браузере; основная идея состоит в том, что модель событий DOM работает одинаково во всех браузерах - "единая разметка" в действии.


То ли еще будет
Пока IE9 находится в разработке, так что это далеко не все. Вот несколько вещей, которые будут доступны в грядущих обновлениях предварительной версии. За дополнительной информацией обращайтесь к документации к релизу.

1. События мутации. События мутации позволяет веб-страницам реагировать на изменения в структуре документа HTML, например, изменения в атрибутах, текстовом наполнении, удаление элементов и дополнений и т.д. В спецификации DOM Level 2 были определены события мутации. Обратите внимание, что далеко не все события мутации реализованы во всех браузерах.
2. DOMContentLoaded. DOM события спецификации 3 уровня определяют общие рамки и базовый набор событий, но не определяют все события, имеющие отношение к веб-браузеру для поддержки. HTML5 определяет многие дополнительные события, прежде всего DOMContentLoaded и другие, связанные с разбором и загрузкой веб-страниц.
3. Совместимые свойства события. Хотя они и не стандартизированы, многие свойства события, как, например, "keyCode", "cancelBubble" и т.д., широко используются в других браузерах, поэтому многие веб-страницы зависят от их функциональности в целях обеспечения интероперабельности.

Мы призываем веб-разработчиков по всему миру программировать прямо в модель событий DOM. Ознакомьтесь с этим и этим демо, тестовыми случаями событий DOM Level 3 и поделитесь с нами вашими отзывами.

Трэвис Лейтхэд (Travis Leithead),
программный менеджер Internet Explorer


Источник: http://blogs.msdn.com/ieru
Перевод: houseboy


Понравилась статья? Добавьте её в  или оцените 


Этот сайт приносит прибыль с помощью Бегуна

В тему:



 
Поиск по сайту
Навигация
Новости
Форумы
Статьи
Галерея
Файлы
Ссылки

Поиск
Карта сайта
О Проекте
Команда
Вакансии
Реклама
Связь с нами

Что нового
Статистика
Переходы
Экспорт
RSS-канал
Информер
Облако
Windows Vista  Windows 7  Windows Longhorn  Windows Server  Windows Home Server  Office System  Windows Internet Explorer  Windows Media Player  Windows Vienna  Windows Fiji  Информационная Безопасность  Windows Phone  Windows Live  Microsoft System Center  SQL Server  Exchange Server  Silverlight  Microsoft Surface  Hyper-V  WinFS  WPF  .NET  Microsoft Visual Studio  Продукты Microsoft  Технологии  Железо  IT Мероприятия  Microsoft  Коротко  Файлы  Ссылки  Обзоры  Галерея  Windows 7  Windows Vista  Windows Longhorn  Mac Office System  Internet Explorer  Другие продукты  Железо  Мануалы  Windows Vista  Windows Internet Explorer  Система Windows Vista  FAQ (ЧАсто задаваемые вопросы)  Windows Presentation Foundation  Экскурс в историю  Windows 7  Windows Vista  Windows Longhorn  Office System  Windows  Microsoft Office  Продукты Microsoft  Windows Tools  Гаджеты  Официальная документация  Обновления  Драйверы  Темы  Обои  Мутогены  Видео  Ссылки 
Магазин