Хабр Курсы для всех
РЕКЛАМА
Практикум, Хекслет, SkyPro, авторские курсы — собрали всех и попросили скидки. Осталось выбрать!
Internet Explorer 8 introduced the idea of document modes as a way to transition websites from proprietary features to features based on standards and supported by multiple browsers and devices. Starting with Internet Explorer 11, document modes are considered deprecated and should not be used.
…
In order to ensure users receive the best experience possible, earlier document modes will be phased out. Websites based on legacy techniques should be updated to rely on features defined by modern standards and practices.
There might be extenuating circumstances in your company, which require you to continue to use Compatibility View. In this situation, this process should be viewed strictly as a workaround. You should work with the website vendor to make sure that the affected pages are updated to match the latest web standards. The functionality described here is currently deprecated and will be removed at a time in the future. This functionality is only available in Internet Explorer for the desktop.
Because older websites are now just working, we’ve decided that Internet Explorer 10 document mode will be the last new document mode. Instead, developers will need to move to Internet Explorer 11’s Edge mode.
Автор истеричка.
Потому что Майкрософт считает, что их браузер, внимание, не нужно детектить по юзер-агенту
поставляется с набором движков от предыдущих версий
Расскажите тогда, как сдетектить, нормально ли канвас z-index-ы обрабатывает
IE переключается в один из режимов совместимости
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
не сработаля ещё не видел ситуации, в которой
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
не сработал
Похоже у мелкософта традиция более-менее нормальные продукты через версию выпускать.Да, да:
Windows 2000 выпускалась в четырёх изданиях: Professional (издание для рабочих станций и опытных пользователей), Server, Advanced Server и Datacenter Server (для применения на серверах). Кроме того, существует «ограниченное издание» Windows 2000 Advanced Server Limited Edition и Windows 2000 Datacenter Server Limited Edition, предназначенное для работы на 64-разрядных процессорах Intel Itanium.
Программа WIN.COM начинала загрузку того, что большинство людей называют собственно «Windows». Посредством копии MS-DOS она загружала менеджер виртуальных машин, считывала файл SYSTEM.INI, загружала драйверы виртуальных устройств, затем выключала EMM386 (если таковой был) и переключалась в защищённый режим. «Настоящая Windows» с точки зрения большинства людей — именно защищённый режим.
В защищённом режиме драйверы виртуальных устройств творили свою магию. В числе их действий было вытаскивание всего состояния MS-DOS, перевод его в состояние 32-битной файловой подсистемы и отключение MS-DOS. Все дальнейшие файловые операции направлялись в 32-битную файловую подсистему. Когда программа обращалась к int 21h, ответственной за обработку оказывалась 32-битная файловая подсистема.
Здесь вступает в игру вторая роль MS-DOS. Видите ли, программы и драйверы MS-DOS любили встраиваться в глубины операционной системы. Они могли заменять обработчик прерывания 21h, они могли патчить код системы, они могли заменять низкоуровневые дисковые обработчики int 25h и int 26h. Они могли также творить умопомрачительные вещи с прерываниями BIOS типа int 13h, ответственного за работу с дисками.
Когда программа обращалась к int 21h, сначала запрос направлялся в 32-битную файловую подсистему, где проходил некоторую предобработку. Затем, если файловая подсистема обнаруживала, что кто-то перехватил вектор int 21h, она переходила назад в 16-битный код, чтобы позволить перехватчику выполниться. Замена вектора int 21h идеологически похожа на сабклассинг окна. Вы получаете старый вектор и устанавливаете новый вектор. Когда установленный вами обработчик вызывается, вы что-то делаете, а затем вызываете старый обработчик. После возврата из старого обработчика вы можете ещё что-нибудь сделать, прежде чем вернуть управление.
Одним из 16-битных драйверов, загружавшихся из CONFIG.SYS, был IFSMGR.SYS. Его задачей было перехватить MS-DOS первым, прежде чем все остальные драйверы и программы получат свой шанс! Этот драйвер был в сговоре с 32-битной файловой подсистемой, возвращаясь из 16-битного кода назад в 32-битный, чтобы файловая подсистема могла продолжить свою работу.
Как я отметил в статье по ссылке выше, 32-битная файловая подсистема тщательно подделывала свидетельства, заставляя 16-битный код верить в то, что за всё ответственна MS-DOS, хотя это и было неправдой. Любой, кто занимался программированием TSR (ого, определение любой, кто занимался программированием TSR когда-то охватывало массу людей, а сегодня описывает несколько десятков бывалых программистов, большинство из которых хотели бы забыть это как страшный сон), знает всё про флаг INDOS. MS-DOS устанавливала этот флаг на время обработки запроса ввода-вывода. Поскольку MS-DOS не допускала вложенного вызова самой себя, TSR должны были тщательно отслеживать этот флаг, чтобы знать, безопасно ли обращаться к MS-DOS. Флаг INDOS был 16-битным отражением сущности, которую 32-битное ядро называло Главной Критической Секцией; 32-битное ядро держало главную критическую секцию и флаг INDOS в одинаковом состоянии, чтобы не вызывать один и тот же драйвер MS-DOS или TSR параллельно несколько раз. Когда одна виртуальная машина захватывала главную критическую секцию, любая другая виртуальная машина, попытавшаяся сделать то же самое, была вынуждена ждать, пока первая виртуальная машина не отпустит секцию. Таким образом, параллельные вызовы драйвера или TSR блокировались.
Как я уже отметил, в 16-битном мире собственно форматированием занималась ROM BIOS, и в целях совместимости форматирование дискет по-прежнему посылалось через 16-битное программное прерывание 13h, чтобы все TSR и драйверы могли увидеть происходящее. Многие BIOSы безумны, так что при запросе на форматирование дискеты 32-битное ядро проделывало большую дополнительную работу, чтобы BIOS получала именно то окружение, которого хотела. В частности, порты аппаратного таймера переходили от менеджера виртуальных машин под полный контроль BIOS, чтобы не влиять на работу циклов, используемых BIOS для задержек при форматировании, для которых критично время выполнения.
и что? вы много знаете людей, которые переключают режим отображения в ие?(за исключением разработчиков, естественно)
<meta http-equiv="X-UA-Compatible" content="IE=Edge" />
Если у сайта выставлена совместимость с IE6, то ваши z-index в canvas ему не нужны.
Я здесь [в смысле, на Хабре — прим. моё] занимаюсь тем, чем мне нравится; в основном — троллю и набрасываю, местами довольно эпично.
rv token — это rv token.
Нет никакой гарантии, что у IE12 не будет Trident/7.1 rv:11.1. Ну или вообще Trident/7.0 rv:11.0
Давайте я повторю ещё раз: разработчики браузера, который поставляется с 6 разными движками, эмулирующими баги предыдущих версий этого браузера, начиная с 1999 года, заявляют, что его не нужно определять по юзер-агенту.
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
А, ну ок. Конечно же, придумал. От нечего делать.
Могу снять скрин, но не вижу смысла, раз вы мне на слово не верите.
Вы должны поддерживать IE9, 10, 11 без учёта режима совместимости.
подарила нам еще один IE6
Выпустят пару игр без поддержки или с ограниченной поддержкой старой оперы.
Добавился Яндекс.Браузер, который внутре тот же Хромиум, хоть и обновляется реже.
Если под «баттхёртом» понимать несколько человеко-месяцев разработки, потраченные большей частью впустую, а также несколько внезапных багов в продакшене, которые приходится фиксить ASAP — то
для продвижения своих услуг и сбора статистик
+Yandex LLC <*@yandex-team.ru>
Pros
* Nostalgic
Cons
* Doesn't render web pages properly
* Constantly crashes
* Slow and insecure
* Abandoned software
Пожелания заказчика и взгляды разработчика как профессионала могут не совпадатьЗаказчик сам сайт не напишет ;) Так что если вы фрилансер-разработчик — то за поддержку старого г… нужно брать имхо 2х оплату. Заказчик или передумает, или пойдет искать другого фрилансера. Да, может быть найдет другого, но если вы разработчик — то надо смотреть на это так: «соглашаясь подвожу другого разработчика (который отказался) и продлеваю жизнь IE»
Да и про корпоративщиков не нужно, достаточно просто убедительно рассказать, чем чревато использование программ имеющих доступ в инет и в которых дырки не закрываются уже десяток лет, а также о том что поддержка антиквариата стоит дполнительных денег (желатель x2 или x3), тогда они будут задумываться.
Например, когда вам где-нибудь за городом срочно нужно будет воспользоваться каким-нибудь приложением на смартфоне, разработчики которого расчитывают на 98% пользователей с 3G и LTE и решили принебречь теми 2% пользователей с GPRS, не протестировали своё приложение с медленным интернетом, и у вас на даче постоянно обрывы соединения, так как разработчики забили на оптимизацию (ведь это время можно потратить на добавления новых фишек!) и оставили короткий timeout.
потратили на развитие проекта, оптимизацию загрузки, фиксы минорных багов и новые фичи
Или у вас в отпуске за границей кончились деньги на телефоне, но вы-то можете через сайт опсоса послать SMS маме и попросить положить деньги вам на телефон, но вот беда, капча там на кириллице — разработчики российского оператора решили принебречь пользователями без русской раскладки клавиатуры, а вы стоите перед древним интернет-терминалом где-нибудь в Испании, и там не то что русской раскладки нет, там даже буквы кириллицы из википедии не скопируешь, так как юникод не поддерживается.Вы знаете, я не был в Испании, и не знаю какие такие диковинные терминалы, которые позволяют серфить интернет, да еще без юникода и без возможности добавить раскладку клавиатуры. Что-то мне кажется что это какой-то сферичиский конь в вакууме, а не пример из реальной жизни. И опять же, причем тут поддержка старых версий браузеров?
Или вы хотите поиграть в любимую русскую игрушку или установить нужную русскую программу (The Bat, например, гы-гы), но винда на компе вдруг не русская (комп купил в Европе, пиратку принципиально не ставил), а программисты расчитывали на 98% или даже 99,99% пользователей с русской виндой, и не озаботились поддержкой юникода, а у вас кракозябры всюду лезут, и в игрушке вы нажимаете ещё всё по памяти, а вот The Bat сносите матерясь и заменяете Thunderbird-ом, который на тот момент ещё глючный и недоделанный.Я сейчас проживаю и работаю в Китае. Когда я только приехал сюда — то внезапно ОС оказалась английской. Это не помешало мне добавить кирилицу в раскладку и в ASCII. Так и сижу с нормально отображающимся русским софтом на английской винде. Внимание вопрос:
Или вы хотите купить что-нибудь через интернет, а эффективные разработчики решили не тратить время на окостыливание проекта и не поддерживать 2% пользователей старых браузеров и показывают вам загрушку: «Ваш устаревший браузер не поддерживается, установите Firefox, вот вам ссылка на exe-файл», — а у вас вовсе не IE6, а планшет самой последней модели, но разработчики ошиблись с определением версии браузера и вместо простого предупреждения о возможных проблемах (которых у вас скорей всего не будет, так как у вас там продвинутый WebKit с HTML5) полностью заблокировали вход на сайт.
диковинные терминалы, которые позволяют серфить интернет, да еще без юникода и без возможности добавить раскладку клавиатуры.Какой-то тонкий клиент с линуксом, в библиотеке. Скопированную кириллицу заменял на вопросики.
Это не помешало мне добавить кирилицу в раскладку и в ASCII. Так и сижу с нормально отображающимся русским софтом на английской винде.А теперь откройте настройки клавиатуры, там где-то в глубине есть выбор языка для неподдерживающих юникод программ — вместо русского поставьте там испанский или вьетнамский и попробуйте продержаться пару лет :) Нет, русский обратно ставить нельзя, потому что говнокодеры — они не только в России, но и куча местного софта требует местную локаль, а ещё исправьте путь к главному меню, чтобы в названии были символы юникода — часть программ даже не установится, другие — откажутся запускаться. Впрочем, сейчас должно быть получше, а лет семь назад нормально работали только программы Майкрософт и популярные opensource-проекты.
А теперь откройте настройки клавиатуры, там где-то в глубине есть выбор языка для неподдерживающих юникод программ — вместо русского поставьте там испанский или вьетнамский и попробуйте продержаться пару лет :)
а ещё исправьте путь к главному меню, чтобы в названии были символы юникода — часть программ даже не установится, другие — откажутся запускаться
Какой-то тонкий клиент с линуксом, в библиотеке. Скопированную кириллицу заменял на вопросики.Ну то есть вы заходите на сайт русского опсоса. В нем у вас все в вопросиках. Вы наощупь находите переключалку на английский язык, или наощупь отправку смс, и видите капчу на кириллице, и не можете её ввести. Так? Ну теперь все понятно, и конечно я с Вами согласен, виноваты разработчики тем, что не хотят поддерживать старые платформы.
IE10 умеет работать в режимах 10, 9, 8, 7 и Quirks
Это глобальный Compatibility List, в который заносятся сайты, которые, по мнению Майкрософт, нужно показывать в каком-нибудь из режимов совместимости.
Нет, серьёзно, они отсматривают весь Интернет и составляют реестр сайтов, которые плохо себя вели!
<domain docMode="EmulateIE9" versionVector="9" uaString="9">care.dlservice.microsoft.com</domain>
<domain docMode="EmulateIE9" versionVector="9" uaString="9">training.partner.microsoft.com</domain>
<domain docMode="EmulateIE9">beta.update.microsoft.com</domain>
<domain>drmlicense.one.microsoft.com</domain>
<domain>learning.microsoft.com</domain>
<domain>microsoft.com
<path docMode="EmulateIE9" versionVector="9" uaString="9">/canada/casestudies</path><path docMode="EmulateIE9" versionVector="9" uaString="9">/danmark/cases</path><path docMode="EmulateIE9" versionVector="9" uaString="9">/products/ceip</path><path docMode="EmulateIE9" versionVector="9" uaString="9">/rus/casestudies</path><path docMode="EmulateIE9" versionVector="9" uaString="9">/worldwide</path><path>/games/flightsimulatorx</path><path>/games/halo/support_alerts.aspx</path></domain>
<domain>msdn.microsoft.com
<path docMode="EmulateIE9" versionVector="9" uaString="9">/en-us/library/community/add</path></domain>
<domain>brandtools.microsoft.com</domain>
<domain>ie.microsoft.com</domain>
Потому что Майкрософт считает, что их браузер, внимание, не нужно детектить по юзер-агенту, поскольку он поддерживает все новейшие стандарты и его не надо отличать от других новых браузеров
факт нахождения в списке совместимости приоритетнее заданного вебмастером X-UA-Compatible!
Почему Microsoft Internet Explorer 11 — худшее, что могло случиться с нами