Недостатки использования режима совместимости с Internet Explorer

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

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

Почему?

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

Ответ 1

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

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

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

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

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

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

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

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

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

Ответ 2

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

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

Ответ 3

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

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

<!DOCTYPE HTML >

<meta http-equiv="X-UA-Compatible" content="IE=100" />

Ответ 4

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

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

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

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

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

Ответ 5

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

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