设计顺序:Firefox,IE或两者兼而有之?

时间:2009-02-10 06:21:31

标签: javascript internet-explorer firefox

在编写新的javascript重型网站时,您编写了哪个订单或网络浏览器?

我可以看到这些可能的订单,但我不确定我最喜欢哪种订单:

  1. 首先编写一个代码并使其正常运行,然后开始使用其他代码进行测试并修复错误。
    • 这将允许最快速的开发(至少使用Firefox),但我从经验中学到,一次调试IE会很麻烦!
  2. 同时代码。换句话说,对于每个新功能,请确保它在继续之前适用于两个浏览器。
    • 这看起来实际上需要花费更多时间,所以也许在Firefox中使用几个功能然后转移到IE来修补它们。
  3. 你们都做了什么?

    编辑1:要在此处回复几个答案: @JQuery用法:由于某种原因,我并没有期待这种回应,但是,现在这似乎是压倒性的接受答案,我想我应该告诉大家一些关于我的应用程序细节的更多信息。这实际上是DynWeb,我开始提出另一个问题,而且正在开发中,许多重要的代码似乎要求我使用document.whatever()而不是任何我可以使用的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作为答案,但我不能,因为它不是这个特定Web应用程序的解决方案。

    @Wedge和bigmattyh:由于webapp应该构建其他webapps,部分标准是它所构建的任何内容在我支持的任何浏览器中的外观和功能都相同(现在我在想Firefox和IE7 / 8 atm,也许更晚些时候)。因此,这是一个更有趣(也更复杂)的问题;您是否有任何针对特定故障区域(css实体,特定javascript陷阱和差异等)的网站,参考或见解以及如何避免它们?我几乎可以肯定,我将不得不拥有某种isIE变量并根据它执行不同的操作,但我希望尽可能避免它。

    感谢您的投入到目前为止!我将在今天剩下的时间里保持开放状态,看看其他人可能会说些什么,并会在今晚的某个时候接受答案。

12 个答案:

答案 0 :(得分:15)

这是一个棘手的问题。在我看来,你需要按照这个顺序工作:

1:符合标准

这使您最接近于在每个浏览器中工作,而无需针对每个浏览器进行测试。此外,只要制作精良且符合标准,您就可以获得网站应该与任何新浏览器一起使用的巨大优势(Chrome就是一个很好的例子)。它还可以更轻松地调整您的网站以在特定浏览器中工作,因为流行的浏览器偏离标准合规性的方式是众所周知的。

2:支持最常用的浏览器(适用于您的网站)

请仔细注意互联网上浏览器使用情况与网站浏览器使用情况之间的区别。在整个互联网上,IE浏览器是最受欢迎的浏览器,其中Firefox紧随其后,Safari,Opera和Chrome占据了大部分其余部分。但是,您网站访问者的受众特征可以将这些数字颠倒过来。在迎合技术精湛人群的网站上,firefox成为IE浏览器的主流浏览器是很常见的。

3:支持其他需要的浏览器

您需要非常明确地说明浏览器兼容性是您网站的运营成本,并且您需要决定绘制线的位置。根据您网站的目的和业务模式,可能只支持最流行的浏览器,甚至是其中的一部分浏览器。另一方面,支持Sun下的所有内容(包括IE5)可能是一个至关重要的业务问题。如果您认为成本/效益比太高而不能证明它是合理的,那么可以有意识地决定不完全支持每个浏览器。实际上,互联网上许多最受欢迎的网站在老式和小众浏览器中都不能很好地运行。虽然您应该努力使您的网站在最不受欢迎的浏览器中仍然可用,即使存在严重的外观或可用性问题。

答案 1 :(得分:9)

FireFox首先是IE。如果它在FireFox中工作,它更有可能在其他非IE浏览器中工作,IE有时需要特殊的魔力。

答案 2 :(得分:8)

使用jQuery并一次完成所有操作。

答案 3 :(得分:3)

首先使用Firefox代码,但随时随地使用IE进行测试。这可以让你修复任何出现的怪癖。首先使用Firefox进行测试非常重要,因为它更符合标准。您应该学习如何以正确的方式编写HTML / JS。随时修复一些问题,以便更好地了解IE如何以不同的方式呈现内容。

对于您添加的每个功能,您可能不需要使用IE进行测试,但经常进行测试,以便问题不会叠加在一起。重复其他浏览器/浏览器版本,以全面了解您网站的兼容性。

答案 4 :(得分:3)

我总是在FireFox和IE7上进行测试。然后修复和浏览IE6和其他浏览器。

如果它适用于FireFox,它几乎肯定可以在Opera,Safari,Chrome等上运行,只需进行一些小的调整

对于IE7和IE6也是如此,如果它适用于7,那么在IE6上获得合理的渲染并不需要太多费用

我通常使用Firefox作为我的主要开发浏览器,因为它具有出色的调试工具,并且我的代码非常递增,写了几行并且每小时测试几次。但至少每隔一两个小时我就会确保我正在做的事情也适用于IE7。

当我进入IE7导致问题的区域时,我开始重新思考我正在做的事情,根据我的经验,修复程序往往会成倍增加并且非常迅速地失控。接受失败往往更好,继续使用更简单的设计。

过去我经常被开发过一种在FireFox上完美运行的东西,但却发现它需要完全重新考虑才能让它在IE7中运行 - 反之亦然。可能需要数天才能解决,并且可能非常令人沮丧。

答案 5 :(得分:2)

  

您是否有针对特定问题区域(css实体,特定javascript陷阱和差异等)以及如何避免它们的任何网站,参考或见解?

这是一个很好的资源quirksmode。作者(Peter-Paul Koch,或PPK)有许多用于CSS和JavaScript支持的兼容性表。他还有一些文章涉及特定问题以及如何编写跨浏览器代码。

他们不处理JavaScript,但Position is Everything是CSS问题的宝贵资源(主要是IE6)。

就像其他人提到的那样,我只是使用jQuery来避免这些问题。如果它不支持,那么编写自定义插件非常容易。

答案 6 :(得分:1)

我先做IE,然后添加Firefox。

我的经验是,一旦它在IE中运行,它继续在IE中工作,并且为什么在Firefox中不起作用的问题通常很容易回答。

答案 7 :(得分:1)

如果你必须编写IE6代码,最令人沮丧的部分是编写CSS和HTML。 jQuery和其他库使代码行为变得更容易 - 但是你通常无法解决这样一个事实:IE6有如此多的奇怪的渲染问题,你会经常敲击你试图让它做Firefox的关键,Safari和Opera第一次做对了。

所以Javascript不是最难的部分。处理HTML和CSS是。根据我的经验,如果您正在使用任何相当有趣的设计,您最好首先编写IE编码,然后在Firefox上进行测试。如果你先做IE,你可能不需要做很多调整,但如果你只在Firefox中编码,你肯定会花一些时间来重新编写你的代码以使IE做你想要的。这就像重复自己。这是一种痛苦。因此,最好先完成它,这样你最终不会浪费太多时间。

答案 8 :(得分:1)

我为两者编写代码,并编写(或使用)浏览器之间存在差异的抽象层。恕我直言,从长远来看,在跨平台环境中持续测试要容易得多。这使我无法做一些调整到一个浏览器的东西,而这个浏览器在另一个浏览器中效果不佳:我在开发周期的早期发现了兼容性问题。

当我做一个小改动时,我可能会首先为一个浏览器做这个,但在我考虑该功能或更改完成之前,它必须至少在firefox和IE中工作。

答案 9 :(得分:1)

为了最大限度地减少现在和下游的问题,以最差的方式处理它们存在的大小。

编辑:如果你能做到以下几点,请记住“如何通过修改的jQuery元素等优先降低到ie6 ......它可能会更清晰......”

所以,今天基于市场份额,它是:

1)IE 6

2)IE 7

3)Firefox

4)Safari..etc。

巧合的是,浏览器的主要问题也是按顺序发生的。

这意味着您的用户将面临的大部分问题将按此顺序排列,并按此比例进行。

在我们的团队中,我已禁止在Firefox中进行初始开发测试。它必须在最薄弱的环节中生存,而不是最强大的。我不知道是非人道的,但我们已经减少了80%的浏览器错误,因为80%的浏览器错误都是IE浏览器。是的,Firefox中有大量的调试工具可以使用ONCE我们在IE中发现了一个问题。

另一方面,我们提供了Firefox的额外功能,仅用于奖励firefox用户。一个简单的浏览器类型检查,它负责其余部分。

答案 10 :(得分:0)

如果您查看了Web浏览器的市场份额,您会发现IE和Firefox位于顶部并且彼此如此接近,因此, 您应该使用像JQuery这样的跨浏览器Javascritp来考虑它们,或者通过测试它们来继续使用它们。

答案 11 :(得分:0)

我认为最好为Firefox设计,但像其他人一样提到JavaScript并不是最难的部分,它的CSS是最难的部分。我个人曾经同时为FF和IE编写代码,但我发现它需要更长的时间,因为你可能会在开发周期中做出重大改变,所以不要一次打扰两者的编码,这可能是浪费精力。 / p>

在选择开始开发的浏览器时要考虑的另一件事是,如果您更熟悉W3C标准或其大多数用户群强加的IE“标准”。对于Web标准来说这很有趣,很多(如果不是大多数)Web开发人员对IE的标准支持不满意,但同时IE支持的任何代码都是Web的真正标准。