Подготовьтесь к просмотру без помощи подключаемых модулей

Начиная с Windows 8 IE представляет собой единую веб-платформу, которая предлагает два способа просмотра веб-страниц: с помощью нового IE с новым интерфейсом Windows, оптимизированным для сенсорных устройств, и с помощью классического браузера Internet Explorer. Как приложение для Windows, Internet Explorer работает без подключаемых модулей, обеспечивая несложный, быстрый и безопасный просмотр веб-страниц. Также он включает собственный проигрыватель Adobe Flash. Удаляя зависимости от подключаемых модулей со своих сайтов и используя вместо этого аналогичные стандартизированные технологии, веб-разработчики могут улучшить взаимодействие и упростить обслуживание сайтов. В этой статье мы представляем руководство по подготовке сайтов и веб-приложений к просмотру веб-страниц в IE без помощи подключаемых модулей и стратегии такой подготовки.

Подключаемые модули и современный Интернет

Подключаемые модули браузера — это скомпилированные программные компоненты сторонних разработчиков, расширяющие функциональность веб-содержимого за счет обращения к низкоуровневым интерфейсам браузера. В Internet Explorer подключаемые модули принимают форму объектов ActiveX и вспомогательных объектов браузера. Два наиболее распространенных подключаемых модуля в современном Интернете — это проигрыватель Flash Player и функция "звонок щелчком" в Skype, которые в Internet Explorer устанавливаются соответственно как объект Microsoft ActiveX и как вспомогательный объект браузера. К другим распространенным технологиям подключаемых модулей браузера относятся Microsoft Silverlight, Apple QuickTimе и Java-приложения. Подобно Flash, эти технологии предоставляют программные платформы и среды выполнения для веб-разработчиков, создающих подключаемые модули для расширения функциональности своих сайтов и веб-приложений.

Появившись еще на заре Интернета, подключаемые модули браузеров сыграли важную роль в разработке сложных веб-приложений и обеспечении доступа через сеть к разнообразному мультимедийному содержимому. Но, наряду с такими возможностями, подключаемые модули могут обладать и некоторыми недостатками. Поскольку подключаемые модули по сути являются приложениями, работающими внутри браузера, они потребляют дополнительные системные ресурсы и создают дополнительные возможные направления атак, представляющие угрозу безопасности. Кроме того, подключаемые модули не предназначены для работы с сенсорными устройствами. Поскольку для самого браузера они являются отдельными приложениями, для них бесполезны усовершенствования Internet Explorer 10 и более поздних версий, нацеленные на органичную работу с сайтами при помощи сенсорного ввода. Наконец, подключаемые модули основаны на технологиях, защищаемых законодательством об интеллектуальной собственности, а качество их кода может сильно различаться. Это затрудняет их поддержку в некоторых браузерах и операционных системах.

К счастью, Интернет не стоит на месте, и стандартизированные технологии, определенные консорциумом W3C как, скажем, технологии, составляющие HTML5, предоставляют возможности, которые подобны возможностям подключаемых модулей. Эти технологии широко поддерживаются современными веб-браузерами и позволяют разработчикам использовать одну разметку и сценарии для всех современных браузеров без необходимости написания или обслуживания дополнительного кода, зависимого от сторонних платформ и сред выполнения.

По сути, стандартизированные, не использующие плагинов веб-сайты помогают:

  • потребителям, улучшая просмотр веб-страниц, увеличивая время работы батареи в мобильных устройствах и предоставляя повышенную безопасность, конфиденциальность и надежность;
  • веб-разработчикам, улучшая взаимодействие сайтов с браузерами и устройствами, повышая совместимость с новыми версиями и упрощая обслуживание сайтов;
  • а также Интернету в целом, стимулируя и создавая более открытую, доступную и не зависящую от конкретных поставщиков сеть.

Поэтому IE в Windows 8 предоставляет просмотр страниц без подключаемых модулей, и крупнейшие сайты во всем мире, число которых постоянно растет, следуют этому принципу. Значительная часть бытовых устройств и браузеров на них уже не поддерживает подключаемые модули. Несмотря на эти тенденции и преимущества, некоторые сайты для потребителей и бизнес-приложения могут по-прежнему запрашивать подключаемые модули. В последнем разделе этой статьи мы расскажем о методиках резервирования и стратегиях нейтрализации проблем, которые помогают пользователям легко переключаться на классический браузер Internet Explorer, чтобы просматривать сайты, зависимые от подключаемых модулей.

Переход к работе без подключаемых модулей

Windows Internet Explorer 9 и более поздние классические версии IE также предоставляют способ просмотра сети без подключаемых модулей при помощи фильтрации ActiveX. IE в Windows 8 не работает с подключаемыми модулями, поэтому он является отличной платформой тестирования и при разработке новых сайтов, не использующих эти модули, и для перевода зависимых от подключаемых модулей сайтов на использование стандартизированных технологий.

В следующей таблице собраны самые распространенные способы использования подключаемых модулей, примеры старых технологий на основе подключаемых модулей и основанные на стандартизации эквиваленты этих технологий, доступные в Internet Explorer 10 и в более поздних версиях.

ВозможностьПример технологии подключаемых модулейСтандартизованные эквивалентные технологии Дополнительные сведения
Видео и звукFlash, Apple QuickTime, SilverlightВидео и звук HTML5 Видео, звук
ГрафикаFlash, Apple QuickTime, Silverlight, Java-приложения Элемент Canvas языка HTML5, масштабируемая векторная графика (SVG), переходы и анимации каскадных таблиц стилей уровня 3 (CSS3), преобразования CSS, WebGL Canvas, SVG, переходы, анимации, преобразования, WebGL
Автономное хранениеFlash, Java-приложения, Google Gears Веб-хранилище, файловые API, IndexedDB, API кэша приложений Веб-хранилище, файловые API, индексированная база данных, API кэша приложений
Связь через сеть, общий доступ к ресурсам, отправка файлов Flash, Java-приложения Обмен сетевыми сообщениями в HTML5, технология CORS Обмен сообщениями по каналам, XMLHttpRequest

 

Видео и звук

Один из самых распространенных способов использования подключаемых модулей — внедрение разнообразного аудио- и видеосодержимого в веб-страницы с помощью таких проигрывателей, как Flash Player. Но разработка спецификаций звука и видео HTML5 и растущая поддержка этих спецификаций в современных браузерах уже меняют эту тенденцию. Поддержка элементов HTML5 для видео и звука была доступна, начиная с Internet Explorer 9. Internet Explorer 10 добавляет поддержку элемента track в HTML5 для субтитров в видео. В Internet Explorer 11 потоковая передача мультимедиа и защита содержимого поддерживаются в элементах мультимедиа HTML5 расширениями источника мультимедиа и расширениями шифрования мультимедиа соответственно. Дополнительные сведения о поддержке см. в разделе "Видео HTML5".

Графика

Кроме того, подключаемые модули используются для предоставления анимированных и интерактивных игр со сложной графикой, а также мультимедийной рекламы. Начиная с версии 9 Internet Explorer предлагает набор альтернативных, отвечающих стандартам графических технологий с  аппаратным ускорением, в том числе HTML5 Canvas, SVG и двумерные преобразования CSS3. Internet Explorer 10 добавляет поддержку эффектов фильтров SVG, переходов и анимаций CSS3, а также трехмерных преобразований CSS3. IE11 добавляет поддержку WebGL.

Автономное хранение

Многим веб-приложениям требуется доступ к файлам данных. В прошлом это означало необходимость доступа к удаленным серверам, на которых хранились эти файлы. Это в свою очередь требовало подключения к сети. Чтобы составлять жизнеспособную альтернативу классическим клиентским приложениям, веб-приложениям необходима возможность автономной работы. Изначально помощниками в области автономного хранения данных для веб-приложений были подключаемые модули, например Java-приложения или Google Gears, но теперь стали доступны альтернативы на основе стандартов консорциума W3C. Веб-хранилище поддерживается начиная с Windows Internet Explorer 8, а Internet Explorer 10 предоставляет поддержку для файлового API, индексированной базы данных и API кэша приложений, что открывает новые широкие возможности для обеспечения автономного обслуживания.

Связь через сеть, общий доступ к ресурсам, отправка файлов

Современные веб-сайты и приложения строятся на основе социальных взаимодействий и общего доступа к ресурсам, что зачастую требует быстрой и безопасной связи между веб-сайтами при отправке данных и обмене ими. В прошлом разработчикам иногда требовалось использовать подключаемые модули, например Flash, для создания междоменных HTTP-запросов, когда Internet Explorer XDomainRequest object не мог предоставить необходимую функциональность. Или же разработчики могли использовать подключаемый модуль на основе Flash или Silverlight, когда их веб-приложениям требовалась поддержка многочисленных операций по отправке файлов, передаче файлов в фоновом режиме и отображению хода выполнения отправки или скачивания. Все это изменил Internet Explorer 10, поддерживающий стандарт CORS для XMLHttpRequest (XHR), событий в ходе выполнения XHR и рабочих веб-процессов. В области обмена сетевыми сообщениями HTML5еще в Internet Explorer 8 появился обмен сообщениями между документами при помощи postMessage method и onmessage event, а Internet Explorer 10 добавил поддержку обмена сообщениями по каналам.

Видео HTML5

HTML5 — это будущее видео в Интернете. Однако, так как существует определение связанных стандартов и выработаны общие базовые уровни поддержки для реализаций в различных браузерах, не стоит забывать о следующем:

Кодировка

Тег HTML5 video поддерживает три основных стандарта кодировки видео: H.264, VP8 и Theora. Формат H.264, также известный по формату файлов MP4, — это наиболее широко используемый сегодня формат кодировки видео в Интернете. Как и тег video в HTML5, он поддерживается всеми DVD-проигрывателями Blu-ray, большинством проигрывателей Flash и Silverlight, а также значительной частью мобильных устройств.

У формата H.264 есть и другие преимущества. Он позволяет использовать видео в Интернете сразу с камеры без предварительной кодировки. Аппаратная поддержка H.264 гораздо лучше любого другого видеокодека, это обусловливает возможность отличного воспроизведения видеофайлов в формате HD даже на маломощном компьютере за счет декодирования H.264 непосредственно процессором. Тот же самый видеофайл в другой кодировке, вероятно, потребует для воспроизведения дополнительной программной поддержки, что замедлит процесс и сделает его более энергозатратным.

Не во всех основных браузерах реализована встроенная поддержка формата H.264. В данный момент в веб-браузеры Firefox и Opera встроена только поддержка форматов VP8 (WEBM-файлы) и Theora (OGG-файлы). Firefox поддерживает H.264, но не поставляется с декодером H.264, а использует встроенную поддержку в Windows и других операционных системах. Для Google Chrome объявлено о планируемом прекращении поддержки H.264, но в момент написания данной статьи этот формат все еще поддерживался. Чтобы избежать проблем, возникающих из-за этих различий, и гарантировать работу видео HTML5 во всех упомянутых браузерах, лучше всего предоставить несколько кодировок видео с помощью элементов source element HTML5. Пример:



<video id="video1">
    <source src="slideshow.mp4" type="video/mp4">
    <source src="slideshow.webm" type="video/webm">
</video>


В этой таблице представлены основные форматы видео HTML5 и текущие уровни их поддержки популярными браузерами.

Кодировка видео Кодировка звука Формат файловWindows Internet Explorer Safari (для Windows, Mac, iPhone, iPad) ChromeFirefoxOpera
H.264AAC.mp4IE9+Safari 4+ Chrome 3.0.182.2+2 Firefox 21+3(требуется подключаемый модуль)
VP8Vorbis.webm (требуется кодек Windows)1(требуется подключаемый модуль)Chrome 6.0.422+Firefox 4+Opera 10.60+
TheoraVorbis.ogg(требуется подключаемый модуль)(требуется подключаемый модуль)Chrome 3.0.182.2+Firefox 3,6+Opera 10.50+

 

1Для IE не требуется подключаемый модуль браузера для поддержки воспроизведения файлов видео .webm, но пользователям необходимо установить бесплатный кодек VP8 для Windows.
2Для Google Chrome объявлено о планируемом прекращении поддержки формата H.264, но в данный момент он поддерживается.
3Поддержка H.264 в Windows 7 (и более поздних версиях) появилась в Firefox 21, а для Linux — в Firefox 24.

Сведения о том, как обеспечить воспроизведение видео и звука HTML5 в различных браузерах, можно найти в разделе "Практические примеры звука и видео HTML5 для разных браузеров".

Потоковая передача и управление цифровыми правами (DRM)

Видео может воспроизводиться в прямой трансляции (потоковая передача) или по требованию (из файла на веб-сервере). Начиная с версии 11 поддерживается и видео по запросу, и потоковая передача видео HTML5, а также функции DRM.

IE11 в Windows 8.1 поддерживает прямую потоковую передачу (или передачу с адаптивной полосой пропускания) видео HTML5 с использованием расширений источника мультимедиа (MSE) консорциума W3C для HTML5. При этом качество видео может снижаться или повышаться в зависимости от качества связи. Это служит альтернативой закрытым технологиям адаптивной потоковой передачи, применяемым в современном Интернете.

Кроме того, IE11 в Windows 8.1 поддерживает расширения шифрования мультимедиа (EME) W3C для воспроизведения защищенного содержимого в элементе video HTML5. IE11 поддерживает систему DRM PlayReady.

Примечание  Расширения источника мультимедиа и расширения шифрования мультимедиа не поддерживаются IE11 в Windows 7.

MPEG-DASH — это недавно появившийся стандарт потоковой передачи в Интернете. Расширения MSE и EME в IE11 совместимы с содержимым MPEG-DASH, а также содержимым ISO BMFF (базовый формат для распространенных типов мультимедиа-файлов). Дополнительные сведения о реализации клиента DASH, использующего преимущества расширений MSE и EME, см. в материале, посвященном созданию сайтов и приложений для потоковой передачи мультимедиа без помощи подключаемых модулей с использованием MPEG-DASH (видео MSDN Channel 9). Также см. эталонную реализацию DASH.js в GitHub-репозитории сайта DASH Industry Forum.

Динамический текстовый канал и стили субтитров

В Internet Explorer 10 появилась поддержка текстовых дорожек для форматов файлов WebVTT и TTML. Для файлов дорожек (как и для видеофайлов) необходимо, чтобы в файлах WebVTT и TTML. сервер указывал заголовок типа MIME. IE11 расширяет поддержку текстовых дорожек в видео HTML5, включая создание объектов TextTrack и TextTrackCue в программном коде для динамического создания дорожек с субтитрами для видео. С помощью методов addTextTrack и addCue вы можете создавать новые дорожки и добавлять их к воспроизводимому видео. IE11 также поддерживает профиль Simple Delivery Profile, позволяя создавать файлы дорожек TTML, которые размещают текст в любом месте проигрывателя, и настраивать шрифты, цвета и стили, что упрощает чтение и делает субтитры в проигрывателе более привлекательными.

Дополнительные сведения о поддержке видео см. в разделах о профиле Simple Delivery Profile (SDP) и о динамических текстовых дорожках в руководстве по IE11 для разработчиков.

Использование подключаемых модулей в качестве крайней меры

Для оптимизации будущей работы и совместимости с браузерами рекомендуется разрабатывать веб-сайты, вообще не использующие подключаемые модули. Но иногда полноценная работа веб-сайта или веб-приложения без подключаемых модулей невозможна. Для таких случаев существуют методики резервирования и стратегии нейтрализации проблем, которые позволяют обеспечить наилучшее взаимодействие с пользователями Internet Explorer 10 или иных браузеров, не использующих подключаемые модули.

Избирательное применение подключаемых модулей

Нет никакого программного способа узнать, просматривается веб-сайт или приложение в Internet Explorer 10 и более поздней версии с новым интерфейсом Windows или же в классическом браузере: строка агента пользователя в обоих случаях одинакова. Даже если бы такой способ и существовал, это все равно не принесло бы пользы, поскольку в обоих случаях используются одни и те же обработчики HTML5 и сценариев, а Internet Explorer может использовать фильтрацию ActiveX. При планировании резервной стратегии для работы без подключаемых модулей лучшим способом обеспечения совместимости веб-сайтов с Internet Explorer 10 и прочими браузерами, не использующими подключаемые модули, является обнаружение функций вместо браузеров. Этот способ позволяет вашему сайту определить, поддерживается ли определенная функция браузером клиента, и если нет — предложить функции на основе подключаемых модулей.

В данном примере используется резервирование элемента HTML для предоставления решения на основе подключаемых модулей для браузеров, не поддерживающих элемент video HTML5.


 
<video id="video1" width="640" height="360" controls>
    <source src="video.mp4" type="video/mp4">
    <source src="video.webm" type="video/webm">
    <object width="640" height="360" classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" codebase="http://fpdownload.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=8,0,0,0">
        <param name="SRC" value="http://ie.microsoft.com/testdrive/IEBlog/Common/player.swf?file=video.mp4">
        <p>Please update your browser or install Flash</p>
    </object>
</video>


В следующем примере используется резервирование на основе JavaScript для предоставления решения на основе подключаемых модулей для браузеров, не поддерживающих встроенный XMLHttpRequest (XHR).



// Best Practice: Use Native XHR, if available.
if (window.XMLHttpRequest) {
    // If IE7+, Gecko, WebKit: Use native object.
    var xmlHttp = new XMLHttpRequest();
}
else if (window.ActiveXObject) {
    // ...if not, try the ActiveX control. 
    var xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
}
else {
    // No XMLHTTPRequest mechanism is available.
}


И, напротив, если ваш сайт поддерживает более разнообразное взаимодействие с помощью определенного подключаемого модуля, можно проверить, был ли загружен модуль, например с помощью свойства readyState property элемента object element его узла, а затем вернуться к работе без подключаемых модулей по мере необходимости. Дополнительные сведения и примеры кода стратегий резервирования см. в разделе Подключаемые модули и элементы ActiveX в Руководстве по совместимости для Internet Explorer.

Использование списка просмотра в режиме совместимости для воспроизведения содержимого Flash

Internet Explorer 10 для Windows 8 содержит встроенный проигрыватель Flash Player, что избавляет пользователей от необходимости скачивать или устанавливать дополнительный проигрыватель. В то время как в классическом браузере Internet Explorer можно просматривать любой сайт с содержимым Flash, Internet Explorer с новым пользовательским интерфейсом Windows может воспроизводить содержимое Flash только тех сайтов, которые не включены в раздел NoFlash списка для просмотра в режиме совместимости. (Включение в раздел NoFlash не влияет на режим документов сайта.) Сайты с содержимым Flash вносятся в этот список, только если у них имеются известные проблемы безопасности или надежности. Разработчик может подать запрос на удаление своего сайта из списка для просмотра в режиме совместимости для Flash. Дополнительные сведения см. в разделе "Руководство для разработчиков веб-сайтов с содержимым для Adobe Flash Player в Windows 8".

Переход в классический режим, если не работают иные варианты

Чтобы гарантировать совместимость вашего сайта с будущими версиями и наилучшее обслуживание наибольшего круга пользователей в долгосрочной перспективе, при создании новых сайтов и модернизации старых стоит отказаться от использования подключаемых модулей. Если это невозможно, обдумайте перенос вашего сайта в приложение Магазина Windows или написание кода для приложения Магазина Windows с использованием пользовательского объекта среды выполнения Windows вместо функций, предоставляемых подключаемым модулем, с последующим подключением сайта к приложению Windows 8.

В ближайшее время Internet Explorer 10 предоставит переключатель функции requiresActiveX, при включении которого пользователю будет показываться уведомление с предложением перейти в классический режим:

Запрос Internet Explorer 10 для сайтов с подключаемыми модулями, требующими перехода в классический браузер Internet Explorer

Используйте переключатель requiresActiveX, только если отсутствие подключаемого модуля приведет к нарушениям в работе веб-сайта. Вот как работает это уведомление:

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

Предоставление пользователям возможности переключаться на классический браузер Internet Explorer является способом обхода проблем совместимости сайта в краткосрочной перспективе, но никак не долгосрочным решением. Способы просмотра настольных систем и большинство подключаемых модулей не предназначались для маленьких экранов, а также не учитывали ограниченный заряд аккумулятора и отсутствие мыши.

В этой таблице перечислены различные способы включения переключателя requiresActiveX.

Способы включения переключателя функции requiresActiveXУправляется
Заголовок HTTP или мета-тегВеб-разработчиком
Список для просмотра в режиме совместимости (CV) IE10Майкрософт
Настройки списка CV групповой политикиСистемным администратором

 

Помните, что Windows RT не поддерживает запуск, эмуляцию или перенос существующих классических приложений x86/64. Дополнительные сведения см. в блоге Создание Windows 8.

Заголовок HTTP и мета-тег

Веб-разработчик может включить переключатель функции requiresActiveX, используя такой заголовок HTTP:


X-UA-Compatible: requiresActiveX=true

либо такой мета-элемент на каждой затронутой веб-странице:

<meta http-equiv="X-UA-Compatible" content="requiresActiveX=true"/>

Список для просмотра в режиме совместимости

Корпорация Майкрософт ведет список просмотра в режиме совместимости для известных сайтов, требующих ActiveX. Эти сайты могут быть сгруппированы в списки по доменам или поддоменам. Пример:



<domain docMode="EmulateIE7" featureSwitch="requiresActiveX:true" versionVector="7" uaString="7">contoso.com</domain>
<domain docMode="EmulateIE7" versionVector="7" uaString="7">
    fabrikam.com
    <path docMode="EmulateIE7" featureSwitch="requiresActiveX:true" versionVector="7" uaString="7">/tv</path>
    <path docMode="EmulateIE7" featureSwitch="requiresActiveX:true" versionVector="7" uaString="7">/video</path>
</domain>


Отдельный список просмотра в режиме совместимости, включающий только имена узлов, поддерживается через групповую политику для вызова того же самого уведомления, которое выводится на основе общедоступного списка просмотра в режиме совместимости Майкрософт.

Можно использовать средства разработчика F12, чтобы определить, находится ли ваш сайт в списке просмотра в режиме совместимости IE. Если для вашего сайта указано "requiresActiveX:true", но вы недавно устранили зависимость от подключаемых модулей, настройку списка просмотра в режиме совместимости IE10 можно переопределить, используя заголовок HTTP или мета-тег, указывающий requiresActiveX=false. Дополнительные сведения об этом списке см. в разделе "Общее представление о списке просмотра в режиме совместимости".

Подготовка сайта к работе без подключаемых модулей

Все больше веб-сайтов, веб-приложений, браузеров и устройств отказываются от подключаемых модулей ради блага потребителей, веб-разработчиков и современного Интернета в целом. Лучшим способом подготовки сайтов и веб-приложений для работы с не использующим подключаемые модули браузером Internet Explorer является замена ключевых подключаемых модулей функциями на основе стандартизированных технологий. Подключаемые модули следует при этом применять избирательно и только при отсутствии стандартизированных альтернатив. Предлагать пользователям перейти к классическому браузеру следует лишь в качестве крайней меры. Выполнение этих рекомендаций позволит добиться наиболее качественного обслуживания самой широкой аудитории пользователей и гарантировать отличную работу вашего сайта с Internet Explorer.

Связанные разделы

Фильтрация ActiveX для потребителей
Просмотр сети без подключаемых модулей
Просмотр веб-страниц в Windows 8 с поддержкой HTML5 и без подключаемых модулей
Веб-сайты и Интернет без подключаемых модулей
От iOS до IE10: просмотр веб-страниц без подключаемых модулей в разных браузерах

 

 

Показ:
© 2014 Microsoft