javascript - 在运行时确定浏览器是否太慢而无法优雅地处理复杂的 JavaScript/CSS 的最佳方法是什么?

标签 javascript performance browser benchmarking

我正在考虑逐步启用/禁用页面上的 JavaScript(和 CSS)效果 - 具体取决于浏览器的快/慢。

我特别考虑的是低功耗移动设备和旧台式电脑 - 不仅仅是 IE6 :-)

有没有类似的例子?

衡量这一点的最佳方法是什么 - 考虑一些因素,例如繁忙的 CPU 上的暂时减速?

注释:

  • 我对浏览器/操作系统检测不感兴趣。
  • 目前,我对带宽测量不感兴趣,只对浏览器/CPU 性能感兴趣。
  • 可能值得衡量的事情:
    • 基本 JavaScript
    • DOM 操作
    • DOM/CSS 渲染
  • 我希望以尽可能少地影响页面渲染速度的方式执行此操作。

顺便说一句:为了不让用户因不一致的行为而感到困惑/恼怒 - 当然,这需要屏幕上的通知来允许用户选择加入/退出整个性能调整过程。

[更新:我错过了一个相关问题:Disable JavaScript function based on user's computer's performance 。谢谢Andrioid !]

最佳答案

我不想在这里扫兴,但在我看来,这目前还不可能以任何有意义的方式实现。

造成这种情况的原因有很多,主要是:

  1. 无论您做什么测量,如果要有意义,都必须测试浏览器/CPU 的最大潜力,而您无法做到这一点并保持任何合理的用户体验

  2. 即使你可以,这也将是一个毫无意义的快照,因为你不知道在测试运行时,CPU 从浏览器以外的其他应用程序承受什么样的负载,并且无论天气如何,这种情况都会持续下去当用户访问您的网站时。

  3. 即使你能做到这一点,每个浏览器都有自己的优点和缺点,这意味着,你必须测试每个 dom 操作函数才能知道浏览器完成它的速度,没有“通用的”根据我的经验,“或“平均”是有意义的,即使有,dom 操作命令执行的速度也是基于 dom 中当前内容的上下文,当你操作它时,它会发生变化。

你能做的最好的就是要么

  1. 让您的用户决定他们想要什么,并让他们在后悔时可以轻松更改该决定

    或者更好

  2. 选择为他们提供一些您可以合理确定大部分目标受众能够喜欢的东西。

稍微偏离主题,但遵循以下思路:如果您的用户不是其社交圈中的技术领导者(就像这里的大多数用户一样,但世界上的大多数人不是),不要给他们太多选择, IE。任何并非绝对必要的选择 - 他们不想要它,并且在为时已晚之前他们不了解其决定的技术后果。

关于javascript - 在运行时确定浏览器是否太慢而无法优雅地处理复杂的 JavaScript/CSS 的最佳方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4734518/

相关文章:

javascript - 除了 IE 以外的其他浏览器的 ActiveX 对象的替代方案?

javascript - 如何停止一遍又一遍地重复相同的 Javascript 函数

性能测试 Apache 与 NodeJs

c# - 如何设置浏览器代理

JavaFX Applet 网页刷新和关闭通知

javascript - 使用 Javascript 更改 HTML 标签内特定文本的颜色

javascript - 解决 Firefox 不传递文件路径的问题

python - 如何在Python中加快像函数一样的卷积?

ruby-on-rails - 片段缓存和预加载 : How to get the best of both worlds?

Javascript JSON.stringify 函数不起作用