Недостатки использования режима совместимости Internet Explorer - PullRequest
10 голосов
/ 25 мая 2011

Каковы недостатки принудительного просмотра веб-сайта в IE в совместимом режиме? Скажем, мы заставляем IE9 режим совместимости IE8 ?

  • Недостатки производительности
  • Невозможно использовать какие-либо новые специальные функции IE9, такие как HTML5 / CSS3 / SVG

Почему?

Мы запускаем унаследованное веб-приложение, которое разрабатывается с 2000 года, поэтому мы боремся за совместимость с Chrome, Opera, Firefox, IE6 / 7/8, и теперь мы решили добавить IE9 в список. Но с IE9 у нас возникают проблемы с печатью, ошибками JavaScript «Permission deniend» (возможно, что-то в кросс-фреймовых вызовах JavaScript) и следующими проблемами - простой обходной путь - заставить IE9 вести себя как IE8, и тогда все работает нормально. Но я все еще не уверен, что это путь ...

Ответы [ 5 ]

2 голосов
/ 04 июля 2011

сначала наше приложение является публичным сайтом (для наших клиентов)

У вас есть общедоступный веб-сайт, разработанный в 2000 году, и он не работает в современных браузерах? Устаревай или переписывай.

Не взламывайте свой код для поддержки современных браузеров, веб-сайт явно плохо написан и не соответствует стандартам. Вы не можете сойти с рук.

Единственное место, где вы можете избежать этого уровня несовместимости, - это приложения для интрасети, и даже тогда вы должны просто заявить «он работает в браузере X, жить с ним»

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

Переработайте свой веб-сайт, чтобы он соответствовал стандартам W3C HTML / CSS и стандартам ES5 , и он будет полностью ориентирован на будущее (в течение нескольких лет).

Увы, веб работает так, что все, что больше 5 лет устарело. Так что либо переписывайте его каждые 5 лет, либо уходите от веб-бизнеса.

С точки зрения фактического использования режима совместимости - нет. IE6-8 - ужасные двигатели, и их следует избегать, как чумы. Если вы используете их, вы не сможете написать код, соответствующий стандартам будущего.

Ваш код должен соответствовать стандартам , и вы должны исправлять / подбирать / исправлять любые специфичные для браузера ошибки, когда эти браузеры не реализуют стандарты .

1 голос
/ 04 июля 2011

Режим совместимости - это то, что MS представила, чтобы дать людям шанс обновить свои приложения, а не для долгосрочного использования. AFAIU.

Если вы хотите, чтобы ваше приложение было совместимо с IE9, вам придется изменить его. Если вы пытаетесь поддерживать совместимость с IE6-9, тогда у вас есть реальная проблема, и вы должны подумать, действительно ли это практично - по сути, вам нужно как минимум 2 различных набора HTML. Это практично для вас?

Режим совместимости IE9 отличается от IE9 и IE8 - он рисует биты из обоих. Поэтому вам необходимо выполнить полное тестирование версии режима совместимости и убедиться, что она продолжает работать против этого.

Итак, в ответ на вопрос, минусы заключаются в том, что вы не совместимы с IE9, и существует опасность, что при выходе IE10 ваш код не будет работать против этого в любом режиме. Вы прикладываете усилия к тестированию на совместимость без учета будущих изменений. В более долгосрочной перспективе вам лучше сделать ваш код совместимым с IE9. Кроме того, сообщение, которое вы даете своим клиентам, заключается в том, что ваша кодовая база не будет совместимой в течение длительного времени. Если вы не говорите с ними о переделке, это настоящий минус.

Однако, похоже, весь ваш код нуждается в доработке, чтобы забыть о IE6 и быть написанным для современных работающих браузеров. Использование режима совместимости до тех пор, пока это не произойдет, вероятно, нормально. Если вы сделаете это - и сообщите об этом своим клиентам - тогда пребывание в режиме совместимости является жизнеспособным.

1 голос
/ 25 мая 2011

Вы не можете сказать, что тестировали в IE6 / 7/8/9, пока не протестировали в этих разных версиях.Эмуляция тестовой среды отличается от использования тестовой среды.Насколько мне известно, режимы совместимости IE7 / 8 - это старые механизмы рендеринга, а не основной браузер в целом, ошибки и все такое.Это закрытый исходный код, поэтому вы никогда не узнаете.

Конвертируйте Microsoft бесплатно загружаемые образы виртуальных дисков для межбраузерного тестирования в образы Virtualbox и помещайте их на компьютер, на котором работает только Virtualbox.Старая машина будет работать, запускать виртуальные машины без головы и получать к ним доступ через удаленный рабочий стол.Таким образом, вы сможете тестировать во всех браузерах, не перегружая свой компьютер MS / Spyware.

1 голос
/ 25 мая 2011

Я полагаю, что ваши системные администраторы могут установить IE в режим совместимости для всего трафика интрасети с помощью редактора групповой политики.Начиная с этого момента любой сайт, который вы создадите, вы можете добавить метатег, чтобы заставить IE9 отображать нативно и использовать все новые функции ...

Я должен сделать это в моем текущем проекте, используяследующий тип документа и метатег в моем заголовке:

<!DOCTYPE HTML >

<meta http-equiv="X-UA-Compatible" content="IE=100" />
0 голосов
/ 25 мая 2011

Использование режима совместимости НЕ заставит браузер использовать механизм JavaScript, который присутствовал в старой версии IE.

Под этим я подразумеваю, что он будет запускать любой код JavaScript с использованием механизма IE9. Что было проблемой для нас при отладке старого продукта, в котором была проблема с IE7 / 8.

...