1

大多数人现在谈论渐进式增强作为使用 javascript 的浏览器(增强版)和没有 javascript 的浏览器(简单版)。

但是浏览器之间的 javascript 性能存在如此大的差异,因此应用该术语来支持在浏览器之间基于 javascript 的功能之间进行选择可能很有用。

在具有大量非绝对必要功能(和动画)的复杂网络应用程序中,是否值得开始考虑将它们封锁起来,例如,这些功能集应该适用于所有浏览器,而这些功能集仅适用于 Chrome 和 Safari ,以及这些在 Firefox 和 Chrome 以及 Safari 和 Opera 等中,因为在某些浏览器中启用某些功能会太慢。

有时我觉得如果他们无法访问某些非必要功能,用户体验会有所改善。例如,禁止 IE 用户调整 Chrome 用户可以调整的某些面板的大小。

4

7 回答 7

1

我自己没有这样做,但我可以看到,如果您的预算允许,这很有意义(并且您无法控制用户的浏览器选择)

归根结底,IE 用户可能使用的是慢速浏览器,但他们仍然是您的用户。因此,如果您想为您的所有用户提供尽可能好的用户体验,花一些时间为 IE 用户提供不同版本的应用程序以赋予他们更高水平的性能可能是值得的。

对 99% 的用户来说快速的应用程序无疑比只对 30% 的用户快速的应用程序要好。唯一的问题是什么更重要 - 用户体验或您的开发时间(并考虑到几年后,普通用户将在更快的计算机上运行更快的浏览器)

但是,任何此类工作都应该由基准测试驱动,因为我的经验是,您经常会惊讶于代码的哪一部分是慢的,而代码的哪一部分是快的。

顺便说一句,Lombardi Blueprint有一个非常有趣的方法,尽管在 GWT 之外可能不切实际。它们具有用 java 编写的布局算法,这样它们就可以在客户端(通过 GWT)和服务器端(通过标准 jvm)上运行。因此,根据浏览器的基准性能,它们能够在客户端(快速浏览器)和服务器端(慢速浏览器)布局之间动态切换。

于 2009-09-01T04:36:36.677 回答
0

这听起来像是一场维护噩梦。

我意识到有些 Web 应用程序使用 html 版本是没有意义的。也就是说,如果可能的话,我会先为每个页面构建一个 html 版本,然后使用 JavaScript 来增强用户体验。

就 JS 而言,IE 的性能不如 Safari、Chrome 和 FF ——但是你真的开发了一个在 IE 中无法使用的页面吗?我只是还没有看到它——在野外,我认为各种 JS 实现已经足够快了。

于 2009-09-01T03:49:14.743 回答
0

这些天浏览器有两个不同的问题:

  1. 速度。我的经验是 IE 7 运行良好,只是比其他版本慢得多。我的解决方法是为用户提供更频繁的 UI 进度更新。由于 UI 更新需要时间,因此我将速度更快的浏览器上的更新最小化。例如,在 IE 上,我在处理另外 50 个事件后用更多反馈更新屏幕。对于其他浏览器,处理 200 个事件后。

  2. 缺乏特色。例如帆布。但是建立多个站点是一笔巨大的开销。并测试它们。因此,我将预算花在了适用于所有当前桌面浏览器的 1 个版本上。并为移动 esp iPhone 制作其他网站。

高温下,

拉里

于 2009-09-01T03:50:34.167 回答
0

我所做的是编写一个具有通用功能的基本 javascript 文件,并达到最低分母(javascript 1.5)。然后,我有其他最新版本的 javascript 文件,这些文件将替换我的 javascript 对象中的函数,以便我可以逐步添加更多支持。

如果我想使用 canvas 标签,那么我可以将它添加到不同的文件中,因为 IE 和 Firefox/Opera/Safari 在创建 canvas 元素的方式上有所不同。

这不是维护的乐趣,但如果我想使用新的 html/javascript 功能,那么这似乎是最好的模型。

于 2009-09-01T03:53:56.077 回答
0

我同意安迪。为不同的浏览器提供不同版本的应用程序是一个潜在的维护问题。我一直认为提供一个适用于所有浏览器的应用程序版本是一个更好的选择。例如,我尽量避免浏览器嗅探器。该应用程序可能不是最酷的应用程序,但它适用于所有人并且更易于维护。

有了所有漂亮的 Javascript 库,这些东西现在变得更容易了,这些库抽象了一些浏览器的差异。此外,您可以在旧版浏览器中做很多事情。它只是“以不同的方式”完成;)

于 2009-09-01T06:05:56.717 回答
0

因此,假设您构建了一个大小合适的应用程序。您可以通过大量浏览器嗅探来确定哪些功能将打开,哪些功能将关闭。你嗅探了 Opera 9.x,现在(实际上是今天)Opera 10 出来了。你必须去更新每一页上的每一个嗅探器。然后很快就会出现另一个浏览器......还有另一个。您将花费所有时间,确定您支持哪些浏览器以及支持哪些功能。

我一天使用多个浏览器。因此,当我访问您的站点时,我将看到三个不同的界面。我会感到困惑,因为我期望的功能或我期望的行为不会存在。最终,我会感到沮丧,再也不会去你的网站了。

此外,一些 JavaScript 的运行速度不仅仅是浏览器。我还有一个运行 Firefox 3.5 的旧奔腾。有时,它可能会非常缓慢。

于 2009-09-01T12:52:02.900 回答
0

我认为答案是您需要将代码分类为速度类别,而不仅仅是分类为浏览器功能。

换句话说,给你的网站分层功能,第一层是基本的 html,第二层是 javascript 可用性改进,第三层是 javascript 动画眼睛糖果。

然后结合允许您的用户随时降级,“单击以关闭动画!”,“单击以打开动画!”,“单击以在基本 html 中查看”,并选择默认为出于速度原因,基于浏览器的某些速度类别(例如,如果 IE7 似乎在打开完整动画时出现速度问题,则将其默认设置为第二个“javascript 可用性改进”层)。

于 2010-02-10T19:43:33.177 回答