Ste*_* Lu 7 javascript testing performance html5 performance-testing
我的网页上有一些浏览器密集型的CSS和动画,我想确定用户是否有快速PC,因此我可以相应地扩展内容以提供最佳体验.
我正在使用http://detectmobilebrowser.com的脚本来检测所有移动设备,我将包括该子句/android|ipad|ipod|playbook|silk/i.test(a)以包括所有平板电脑设备.
然而,这不能也不能真正解决实际的硬件问题.绘制一张我正在寻找的图片并不是很遥远.
例如,iPhone 4S将比移动用户代理检测器匹配的许多设备具有更强大的功能,而这使得它无法将自己与众不同.有人可能会在奔腾II机器上运行谷歌浏览器(不知何故),并希望查看我的页面.(这个人可能没有iPhone 4S)
显然,为了实际获得这个想法,我将不得不做一些实际的性能测试,并且与任何类型的应用程序的性能测试一样,仅测试应用程序实际执行的任务类型的性能是有意义的.
即使考虑到这一点,我觉得在性能测试程序花费太长时间并且用户已经变得不耐烦之前,很难获得任何合理准确的数字.所以这可能意味着继续它,除非我希望第一次初步印象是完美的.嗯,事实恰恰是这种情况.因此,我无法在"第一次运行后"测量性能并稍后调整参数.
所以我剩下的就是基本上尝试在初始页面加载时执行类似的任务,其方式取决于浏览器渲染和处理速度,同时不向用户呈现任何内容(这样他们仍然认为对用户该页面正在加载),然后优选地在一秒或两秒内获得足够精确的数字以设置实际页面的参数以使其成为动画并以不喜欢幻灯片放映的令人愉悦的方式呈现.
也许我可以<div>在我的测试用例上放置一个整页白色,以便我可以阻止用户看到正在发生的事情,并希望浏览器不会通过避免完成所有工作而变得聪明.
有没有人这样做过?
我知道人们会说,"你可能不需要这样做",或者"必须有更好的方法"或"减少影响的数量".
做我在页面上做的任何事情的原因是它看起来很好.这就是它的全部要点.如果我不关心这个问题就不会存在.目标是让javascript能够确定足够的参数,以便在功能强大的计算机上提供出色的体验,并在功能较弱的计算机上提供可通过的体验.当有更多电力时,应该利用它.所以希望这可以解释为什么这些建议不是问题的有效答案.
我不会测量一次用户的 CPU 性能并确定要使用多少奇特的视觉效果,而是测量 CPU 密集型位每次执行时所花费的时间(使用new Date()),并将其与预期的最小值和最大值进行比较(您必须确定),并根据需要动态上下调整“效果级别”。
假设用户在后台启动了一个占用大量 CPU 时间的程序。如果你使用这个想法,你的页面会自动调低视觉效果以节省 CPU 周期。当后台程序结束后,精美的效果就会回来。我不知道您的用户是否会喜欢这种效果(但我确信他们会喜欢他们的浏览器在 CPU 过载时保持响应的事实)。