Порядок оформления: Firefox, IE или оба? - PullRequest
9 голосов
/ 10 февраля 2009

При кодировании новых тяжелых javascript-сайтов, какой заказ или веб-браузер вы кодируете?

Я вижу эти возможные заказы, но я не уверен, что мне больше нравится:

  1. Сначала запишите один код, и он будет работать нормально, затем начните тестирование с другим и исправьте ошибки по мере продвижения.
    • Это обеспечит наиболее быструю разработку (по крайней мере, с Firefox), но из опыта я узнал, что отладка IE с таким большим количеством одновременной работы может быть проблемой!
  2. Код для обоих одновременно. Другими словами, для каждой новой функции убедитесь, что она работает с обоими браузерами, прежде чем двигаться дальше.
    • Кажется, что на самом деле это займет больше времени, поэтому, возможно, сделайте несколько функций в Firefox, а затем перейдите в IE, чтобы их исправить.

Что вы все делаете?

Редактировать 1: Чтобы ответить на пару ответов здесь .: Использование @JQuery: По какой-то причине я не ожидал такого ответа, однако теперь, когда это кажется подавляющим принятым ответом, я думаю, я должен рассказать всем еще несколько вещей об особенностях моего приложения. На самом деле это DynWeb , для которого я начал еще один вопрос, и во время разработки многие важные коды, похоже, требуют, чтобы я использовал document.whwhat () вместо любых функций JQuery или Prototype, которые Я мог бы найти. В частности, при динамическом импорте изменяющегося CSS я должен использовать нечто похожее на:

var cssid = document.all ? 'rules' : 'cssRules';  //found this to take care of IE and Firefox
document.styleSheets[sheetIndex][cssid][cssRule].style[element] = value;

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

@ Wedge и bigmattyh: Поскольку веб-приложение должно создавать другие веб-приложения, одним из критериев является то, что все, что оно создает, выглядит и работает функционально одинаково в любых браузерах, которые я поддерживаю (сейчас я думаю о Firefox и IE7 / 8 АТМ, может быть, позже). Так как это более интересная (и гораздо более сложная) проблема; Существуют ли какие-либо сайты, ссылки или идеи, которые могут у вас возникнуть для конкретных проблемных областей (сущности CSS, конкретные ловушки и различия в JavaScript и т. д.) и как их избежать? Я почти уверен, что мне понадобится какая-то переменная isIE и я просто буду выполнять различные действия, основанные на этом, но я бы хотел избежать этого как можно больше.

Спасибо за ваш вклад! Я буду держать это открытым до конца дня, чтобы увидеть, что другие могут сказать, и приму ответ когда-нибудь сегодня вечером.

Ответы [ 12 ]

15 голосов
/ 10 февраля 2009

Это вопрос с подвохом. На мой взгляд вам нужно работать в таком порядке:

1: соответствует стандартам

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

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

Обратите внимание на различие между разбивкой использования браузера в Интернете и использованием браузера на вашем сайте . В интернете в целом IE является самым популярным браузером с Firefox, а Safari, Opera и Chrome занимают большую часть оставшейся части. Тем не менее, демография посетителей вашего сайта может перевернуть эти цифры с ног на голову. На сайтах, которые обслуживают более технически подкованную аудиторию, обычно Firefox является доминирующим браузером с IE в явном меньшинстве.

3: поддержка других браузеров по мере необходимости

Вы должны четко заявить о том, что совместимость браузера является эксплуатационной стоимостью вашего сайта, и вам нужно решить, где вы проведете черту. В зависимости от цели и бизнес-модели вашего сайта может быть полезно поддерживать только самые популярные браузеры или даже их подмножество. С другой стороны, может быть жизненно важной задачей бизнеса поддерживать все под солнцем, включая IE5. Можно сознательно принять решение не полностью поддерживать каждый браузер, если вы считаете, что соотношение цены и прибыли слишком велико, чтобы оправдать его. Действительно, многие из самых популярных сайтов в Интернете не работают хорошо в старых и нишевых браузерах. Хотя вы должны стремиться сделать свой сайт по-прежнему работоспособным в наименее популярных браузерах, даже если есть серьезные проблемы с внешним видом или удобством использования.

9 голосов
/ 10 февраля 2009

FireFox, а затем IE. Если он работает в FireFox, он более вероятен в других браузерах, отличных от IE, IE иногда требует особой магии.

8 голосов
/ 10 февраля 2009

Используйте jQuery и делайте их все сразу.

3 голосов
/ 10 февраля 2009

Я всегда тестирую на FireFox и IE7. А затем исправить и испортить IE6 и другие браузеры.

Если он работает в FireFox, он почти наверняка будет работать в Opera, Safari, Chrome и т. Д. С небольшими изменениями

То же самое относится и к IE7 и IE6. Если он работает на 7, для получения разумного рендеринга на IE6 не потребуется слишком много

Я обычно использую Firefox в качестве основного браузера для разработки из-за его превосходных инструментов отладки, и я кодирую очень постепенно, пишу несколько строк и тестирую несколько раз в час. Но, по крайней мере, каждый час или два я проверяю, что то, что я делаю, будет работать и в IE7.

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

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

3 голосов
/ 10 февраля 2009

Сначала запишите код для Firefox, но тестируйте с IE по ходу дела. Это позволяет исправить любые причуды по мере их возникновения. Сначала важно протестировать Firefox, потому что он более соответствует стандартам. Вы должны научиться правильно писать HTML / JS. Исправляйте вещи по мере продвижения, чтобы лучше понять, как IE отображает вещи по-разному.

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

2 голосов
/ 10 февраля 2009

Существуют ли какие-либо сайты, ссылки или идеи, которые могут у вас возникнуть для конкретных проблемных областей (сущности CSS, определенные ловушки и различия в JavaScript и т. Д.) И как их избежать?

Хороший ресурс для этого - quirksmode . Автор (Peter-Paul Koch, или PPK) имеет множество таблиц совместимости для поддержки CSS и JavaScript. У него также есть статьи, посвященные конкретным вопросам и тому, как писать кросс-браузерный код.

Они не имеют дело с JavaScript, но Позиция - это все является ценным ресурсом для решения проблем CSS (в основном IE6).

Как уже упоминалось, я просто использую jQuery, чтобы избежать этих проблем. Если есть что-то, что он не поддерживает, довольно легко написать собственные плагины.

1 голос
/ 10 февраля 2009

Чтобы свести к минимуму ваши проблемы сейчас и вниз по течению, работают с наихудшими и лучшими по величине их существования.

Редактировать: Если вы можете сделать следующее, помня о том, «как это может изящно ухудшиться до ie6 с помощью измененных элементов jQuery и т. Д. ... это может быть немного яснее ...»

Итак, сегодня, исходя из доли рынка, это:

1) IE 6

2) IE 7

3) Firefox

4) Safari..etc.

По совпадению, основные проблемы с браузерами возникают и в этом порядке.

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

В нашей команде я запретил начальное тестирование в Firefox. Он должен пережить самую слабую ссылку, а не самую сильную. Я знаю, что это бесчеловечно, но мы сократили возврат и исправление ошибок, связанных с браузерами, на 80%, потому что 80% ошибок браузера - это IE. Да, в Firefox есть куча инструментов отладки, которые можно использовать ОДИН РАЗ, когда мы находим проблему в IE.

С другой стороны, мы добавили дополнительные функции, которые являются Firefox только для вознаграждения пользователей Firefox. Простая проверка типа браузера, и он позаботится обо всем остальном.

1 голос
/ 10 февраля 2009

Я пишу код для обоих и пишу (или использую) уровни абстракции, где есть различия между браузерами. ИМХО, в долгосрочной перспективе гораздо проще постоянно тестировать в кроссплатформенной среде. Это мешает мне делать то, что настроено на один браузер, но в другом просто не будет работать: я очень рано на этапе разработки выясняю, какие будут проблемы совместимости.

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

1 голос
/ 10 февраля 2009

Если вам нужно написать код для IE6, самая неприятная часть - это кодирование CSS и HTML. jQuery и другие библиотеки облегчают кодирование поведения - но вы обычно не можете обойти тот факт, что IE6 имеет так много странных проблем с рендерингом, что вы будете часто стучать головой по клавишам, пытаясь заставить его делать то, что Firefox , Safari и Opera делают правильно с первого раза.

Так что Javascript не самая сложная часть. Работа с HTML и CSS есть. По моему опыту, если вы работаете с достаточно интересным дизайном, , вам лучше сначала написать код для IE , а затем тестировать на Firefox. Вероятно, вам не придется вносить много корректировок, если вы вначале сделаете IE, но вам определенно придется потратить некоторое время на переоснащение своего кода, чтобы заставить IE делать то, что вы хотели, если вы пишете код только в Firefox. Это как повторить себя. Это боль. Поэтому лучше сначала сделать это, чтобы не тратить слишком много времени.

1 голос
/ 10 февраля 2009

Сначала я делаю IE, а затем добавляю Firefox.

По моему опыту, когда он работает в IE, он продолжает работать в IE, и на вопрос, почему что-то не работает в Firefox, обычно легко ответить.

...