7

我正在寻找有关开发跨浏览器工作网站的人们体验的反馈。在我看来,至少有两种明显的方法可以让您的网站/网络应用程序跨浏览器工作:

  1. 每一步都在所有支持的浏览器上不断测试;或者
  2. 选择一个浏览器,让所有在其中工作的东西作为参考实现,然后让所有其他浏览器与参考实现相匹配。

每种方法都有一个明显的缺点——#1 的问题是你最终会做很多不必要的工作——特别是如果你正在开发一个经历大量迭代/原型设计/尖峰等的 web 应用程序。你会做一堆东​​西可以跨浏览器工作,随后将被丢弃/删除。

方法 #2 的缺点是,虽然它使初始开发变得更快、更痛苦,但它使找出某些特定错误出现的位置变得更加困难,尤其是对于更复杂的问题——而如果你一直在为所有人开发浏览器您应该立即抓住它并知道是什么变化引入了问题。

一个有点明显的第三种选择是混合方法,但在我看来,你最终会因为遇到#1 和#2 的两个问题而失去更多,而不是从两者中获得的好处。

您发现应对这一挑战的最有效方法是什么?

4

10 回答 10

9

我发现,如果您在开发网站时过于深入而没有查看其他浏览器,您将很快到达一个令人头疼的地方,无法调试。我一直在我关心的所有浏览器中打开我的网页。

我强烈建议您在每次对网站进行重大更改时验证所有浏览器。

于 2008-10-23T22:28:59.050 回答
3

使其与所有浏览器一起工作。这将意味着在开发过程中进行额外的测试,但会在以后减少您的痛苦。我发现如果我刚刚开发了这个东西,通常更容易诊断问题,而不是稍后再回来尝试找出它......以及其他问题的列表。

于 2008-10-23T22:29:38.220 回答
2

这部分取决于您是否知道它必须预先在所有浏览器中工作。如果你这样做了,那么你最好从一开始就让它跨浏览器。您无需在每一步都测试所有内容是否 100% 兼容,但您应该为此编写代码。

真的,这并不难,尤其是 jQuery 和 Dojo 等 JS 框架围绕着这些框架来处理这些工作。如果您发现自己不断地与一种或另一种浏览器作斗争,您可能需要重新考虑您的设计,因为当跨浏览器兼容性很重要时,您可能选择了一种本质上更难做的事情。

于 2008-10-23T22:26:19.320 回答
2

好吧,你做#1,但你在做风格指南的同时做这件事。有点像这样:http ://www.sitefromscratch.com/content/html-xhtml-css-testing 。

因此,在设计新网站或设计时,您创建的页面包含将在您的网站上使用的所有视觉元素所需的 HTML。现在忽略样式,只使用最有意义的 HTML。

然后你设计它。最好,您的样式指南都在一个页面上,因此它可以在您支持的每个浏览器中打开,您需要做的就是在更改之间点击刷新,(避免选择多个页面,因为检查需要更长的时间商场)。

当您构建您的网站时,请根据样式指南进行构建。如果它不在样式指南中,请先添加并在那里进行测试。如果您在构建站点时发现问题(例如,可能在包装时没有考虑特定元素),请在样式指南中复制并修复问题。

这是杀手锏:您支持的浏览器的一个新版本发布了,您希望测试什么,您的整个网站,还是样式指南?

这就是 CSS 的处理,现在你需要用你的通用 JS 函数(如果有的话)来做这件事。

于 2008-10-24T08:26:23.930 回答
1

我在浏览器和我的代码之间创建了一个接口兼容层——基本上,我包装了某些功能并让包装器确定需要什么 javascript/html。

随着浏览器的变化,您可以更改此兼容性层,您可以不理会其余代码。

如果您的架构中有这一层,那么您的问题的答案将变为“随时随地”。

于 2008-10-23T22:32:46.187 回答
1

如果您可以获得企业锁定,那么多浏览器支持就不会成为问题,例如,如果您的客户都是使用 Internet Explorer 的公司,那么为什么要构建在 Safari 或 Chrome 中看起来不错的网站?

如果您正在为公众制作东西,那么我会使用一种混合方法,即我使用一个浏览器来获取所有功能并正常工作,然后在我处于“美化”阶段时跨浏览器进行测试的项目。最初的关键是让它工作,然后它必须看起来不错。

当我最初填写表格或执行一些其他基本功能时,我认为我看不到在所有浏览器上进行测试的逻辑,因为在至少几个浏览器上进行测试可能会极大地消耗生产力,例如 IE 6 和 7 , Firefox 2 和 3, Opera 9.5, Safari, 和 Chrome,如果你想得到所有的大男孩,至少有几个操作系统,因为 Mac 上的 Safari 可能与 Windows 上的 Safari 不同,这是很多测试即使只有一两页。另一方面,在接近尾声的时候,我可以重构我的 CSS 和内联样式,并使代码更好地移交给其他人维护,存档直到计划服务包项目,或者保留一些文档以防万一有些事必须得完成。还有,等着收拾东西,

于 2008-10-23T22:34:07.870 回答
1

我通常开始确保我编写/使用的所有 HTML 和控件都符合规范。

工具-->选项-->文本编辑器-->HTML-->验证-->检查显示错误并选择您的目标

这让我有了坚实的基础。我在单个浏览器中对新功能进行功能测试,然后每天大约一次/两次在所有浏览器中测试它们的全部集。

使用这种方法时,CSS 和 JS 是不正确的常见嫌疑人,它很少是实际的 HTML 标记。

于 2008-10-23T22:38:33.227 回答
1

如果你第一次就做对了。就这么办。以后可能永远不会对了。

于 2008-10-23T23:24:28.343 回答
0

主要取决于您的经验,这可以应用于任何编程活动,包括这个。如果您事先知道您将不得不避免哪些可能的陷阱(例如,在跨浏览器开发中,请不要尝试在不同的浏览器中做一些麻烦的事情来让自己变得困难) ,那么您可能可以在一个浏览器中安全地开发所有内容,然后在完成后进入并进行调整以使其在任何地方都能正常工作。

我通常建议初级开发人员在开发过程中保持所有浏览器打开,并在进行更改时刷新每个浏览器,但我自己倾向于使用 Firebug 编写所有内容以获得支持,然后再回去看看它在 IE7(等)中的表现。因为我已经这样做了好几年了,所以大多数时候我可以预测会导致头痛的原因,并且通常会立即知道在哪里解决它。

于 2008-10-23T22:38:23.070 回答
0

如果您是 Web 设计/开发的新手,那么在不同的浏览器中做正确的事情有时可能是一件苦差事。

然而,让一个网站在所有主流浏览器中运行并按照 W3C 标准进行编码并不难。在我看来,每个设计师/开发人员都应该这样做,否则他们不会比 IE 时代更好。

开发跨浏览器代码,确保它经过验证,不再考虑为一个浏览器设计。

于 2008-10-23T23:52:40.393 回答