什么';在运行时判断浏览器是否太慢而无法正常处理复杂的JavaScript/CSS的最佳方法是什么?
我一直在考虑逐步启用/禁用页面上的JavaScript(和CSS)效果,这取决于浏览器的速度 我特别想到的是低功耗的移动设备和老式台式电脑——而不仅仅是IE6:-) 有没有这样的例子 衡量这一点的最佳方法是什么——考虑一些事情,比如繁忙CPU上的临时减速 注意事项:什么';在运行时判断浏览器是否太慢而无法正常处理复杂的JavaScript/CSS的最佳方法是什么?,javascript,performance,browser,benchmarking,Javascript,Performance,Browser,Benchmarking,我一直在考虑逐步启用/禁用页面上的JavaScript(和CSS)效果,这取决于浏览器的速度 我特别想到的是低功耗的移动设备和老式台式电脑——而不仅仅是IE6:-) 有没有这样的例子 衡量这一点的最佳方法是什么——考虑一些事情,比如繁忙CPU上的临时减速 注意事项: 我对浏览器/操作系统检测不感兴趣 目前,我对带宽测量不感兴趣——只对浏览器/cpu性能感兴趣 可能值得衡量的事情: 基本JavaScript DOM操作 DOM/CSS呈现 我希望这样做的方式尽可能少地影响页面的渲染速度 顺
- 我对浏览器/操作系统检测不感兴趣
- 目前,我对带宽测量不感兴趣——只对浏览器/cpu性能感兴趣
- 可能值得衡量的事情:
- 基本JavaScript
- DOM操作
- DOM/CSS呈现
- 我希望这样做的方式尽可能少地影响页面的渲染速度
[更新:我错过了一个相关的问题:。谢谢!]你可以尝试一些基本操作的时间安排——看看史蒂夫·苏德的剧集和雅虎的《回力棒》,找到一个很好的方法来安排浏览器端的内容。然而,要计算出这些指标与可接受的性能水平/有回报的用户体验之间的关系将相当复杂
如果你打算提供一个用户界面,让用户选择加入/退出,为什么不让用户选择应用程序中的眼力级别和渲染速度呢?在这里不是一个杀手锏,但在我看来,这不是一个目前可能以任何有意义的方式实现的壮举 这有几个原因,主要有:
有点离题,但遵循以下思路:如果你的用户不是他们社交圈的技术领袖(就像这里的大多数用户一样,但世界上的大多数人不是),不要给他们太多选择,也就是说,任何并非绝对必要的选择——他们不想要它,而且在为时已晚之前,他们也不了解自己决定的技术后果。看看谷歌的一些(受版权保护的!)基准:
您可以测试正则表达式操作(与上面类似)、字符串连接、页面滚动、任何导致浏览器重新绘制或回流的操作等。另一种不需要显式基准测试的方法是逐步启用功能 您可以按优先级顺序应用功能,在每一个功能之后,如果经过一定的时间,就放弃其余的功能
确保最昂贵的功能排在最后,您将根据浏览器的速度为用户提供一些适当的功能选择。一些想法:
- 对考试设置时间限制似乎是一个显而易见的选择
- 将测试结果存储在cookie中似乎也是显而易见的
- 测试的测试性能不佳可能会暂停更多脚本
- 并触发非阻塞提示UI的显示(类似于现代web浏览器中常见的保存密码提示)
- 这会询问用户是否希望选择进一步的脚本效果,并将答案存储在cookie中
- 当用户未响应提示时,定期重复测试,如果连续测试完成速度快于第一个测试,则自动接受脚本提示。
- 另一方面,也可能测试网络速度较慢
- 通过定时下载外部资源(如页面拥有CSS或JavaScript文件)
- 并将该结果与JavaScript基准测试结果进行比较
- 这在依赖XHR效果负载和/或大量使用
s的站点上可能很有用。
- 似乎DOM渲染/操纵
let now, finishTime, i = 0; now = Date.now();//Returns the number of miliseconds after Jan 01 1970 finishTime = now + 200; //We add 200ms (1/5 of a second) while(now < finishTime){ i++; now = Date.now(); } console.log("I looped " + i + " times!!!");