Подтвердить что ты не робот

Должна ли выполняться проблема совместимости между браузерами?

Когда мы говорим о совместимости с браузером, большую часть времени мы определяем его как список минимальной версии браузеров, которые приложение будет поддерживать. например:.

IE9 +, Firefox 25+, Chrome 32+ и т.д.

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

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

Например, у меня возникла проблема с aurelia-polyfills.

Библиотека не загружается в Firefox 35 в строке (function(o, s) { ... }(Object, Symbol)) с помощью Symbol is not defined.

Этот код отлично работает в Firefox 29 и в последних версиях (54). Я не знаю, сколько версий до 35 и после этого могло возникнуть.

Эта проблема, IMO, больше связана с Firefox и меньше с библиотекой, так как она должна разыгрывать Symbol как undefined, и пусть код проверяет и обрабатывает ее должным образом. Это похоже на то, что IE не обрабатывает ключевые слова, такие как enum правильно.

Теперь вопрос в том, должен ли это рассматривать как ошибку для библиотеки или библиотеки, должен объявить, что эта промежуточная версия Firefox не поддерживается?

С одной стороны, имеет смысл исключить эту версию, поскольку это "неправильно" в браузере. Автор библиотеки не может принять побои на любые и все проблемы, сделанные браузером. Особенно в наши дни новые выпуски браузеров гораздо более часты по сравнению с прошлым. Некоторые ошибки ограничены.

С другой стороны, это именно то, о чем "совместимость с браузером", и нужно ее обрабатывать. Автор библиотеки не может игнорировать их, потому что они используются клиентом. Но в этом конкретном случае это просто не сработает, потому что всякий раз, когда доступ к Symbol приведет к сбою системы.

Другим моментом является то, что когда таблица совместимости браузера обновляется, она будет "сдвигаться" к тем версиям, у которых есть проблема.

Это означает либо обновление таблицы совместимости с "IE9 +, Firefox 25+,..." до "IE10 +, Firefox 35 +,..." и "WTF", либо принуждение иметь гораздо более узкую таблицу, например. "IE10 +, Firefox 52 +,...".

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

Что вы порекомендовали бы?

btw, я ничего не имею против Firefox и использую его только как пример.

4b9b3361

Ответ 1

Для автоматического обновления браузеров (Chrome, FX, Safari, Edge) поддерживается только последняя версия. Корпус может зависнуть в более старых версиях, но поддержка этой более старой версии - это то, за что вы можете как взимать плату, так и рекомендовать против нее. Если клиент хочет поддержку FX35, это будет очень необычный запрос - это не выгодно для вас, чтобы тратить время на тестирование, когда вы не знаете, что они захотят этого. Потратьте эти деньги на версии, которые потребуют подавляющее большинство клиентов.

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

Для IE это намного грязнее. В настоящее время "живут", есть IE8, IE9, IE10 и IE11 - все с их собственными причудами и несовместимостью, все больше не активно развиваются и все в значительной степени мертвы в некорпоративном пространстве (нетехнические пользователи с новым ПК должны выйдите из их пути, чтобы получить IE11, а не Edge, так что не будет). IE11 - зомби. MS перестала его разрабатывать и исправляла только проблемы с защитой (до 2025 года), но все равно рушится на то, чтобы потреблять мозги веб-разработчиков повсюду.

В течение некоторого времени я считаю, что лучшей стратегией в IE является поддержка IE11 в полном объеме, а также предлагающая сокращенную/отсутствующую функциональность для IE8, 9 и 10 с очень ограниченным тестированием. Если вы обнаружите ошибку в IE8, отключите эту функцию и порекомендуйте ее обновить - пользователи IE8 не ожидают плавной анимации и богатого пользовательского интерфейса.

Это действительно сводится к бизнес-кейсу: поддержка многих старых версий обойдется вам в деньги, какие деньги это принесет? Определите бюджет, который у вас есть для поддержки этих старых версий, а затем выберите стратегию тестирования и поддержки, которая подходит.

Ответ 2

Я бы воспользовался последними версиями всех браузеров, с некоторым исключением:

  • У меня есть клиент, который заморозил версию хром Google для всех своих ПК.
  • В другом случае это версии firefox, которые фиксируются в стабильном выпуске дистрибутива Linux. Эти случаи обрабатываются отдельно.
  • Я бы предоставил журнал проблем для проблем совместимости браузеров, открытых для всех пользователей веб-сайта, так что проблема может обсуждаться в ommmunity и в вашем отделе тестирования и разработки, если это достаточно важно для обработки определенной версии определенного браузера.
  • Какую такую ​​платформу вы также можете сообщить, какие версии вы протестировали, какую последнюю версию. И защитите свою "стратегию последней версии".

Ответ 3

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

Даже с браузерами, которые "подтверждают", факт заключается в том, что есть время усыновления. Конечно, вы можете сказать, что большинство браузеров переключится на новую версию в течение N дней, но после этого хвост. И из профессионального контекста этот хвост ДОЛГО. Это нетривиальное количество времени, прежде чем все пользователи покинут определенный браузер.

Там есть воронка, когда дело касается пользователей, использующих службу. Какой процент пользователей на вашем сайте → что% этих людей могут использовать ваш сайт (из-за старых браузеров) → что% этих пользователей нажимают кнопку регистрации → .... → что% этих пользователи покупают ваш продукт (или что-то еще).

Удаление 5% этой воронки в любой точке имеет стоимость. Это затраты, которые следует учитывать не только при тестировании, но и при определении того, какие технологии браузера поддерживать.

TL; DR: Приходите к этому с точки зрения поддержки как можно большего числа клиентов. Только уменьшайте свою воронку, когда прибыль, которую вы делаете в другом месте, превышает стоимость сокращения вашей воронки.

Например, мы решили, что это стоит того, чтобы вырезать < IE10, чтобы мы могли переместить наш сайт на flexbox. Это стоило n% клиентов, которые использовали этот сайт, потому что наша команда разработчиков могла сделать более устойчивый продукт, который принес бы пользу всем нашим другим пользователям.