有没有办法检测计算机是否运行缓慢并且没有运行某些代码(通过关闭jQuery动画或仅运行 快速运行函数)?
我知道这个问题可能非常简单,但我注意到在一些较慢的计算机上,即使是最简单的边缘动画移动也是在看起来不太好的闪光灯中完成的。
更新:
我试图运行的代码只是一堆动画;它们都花费相同的时间,但在较慢的浏览器上,动画会像您在观看缓冲视频时看到的那样进行分段。
答案 0 :(得分:11)
运行javascript时,您无法事先了解目标计算机的性能。我唯一能想到的就是运行一个函数进行一些计算并测量所花费的时间。该功能必须进行足够数量的计算,以确保运行所花费的时间代表机器的性能。
一般来说,我建议不要进行这样的性能测试,因为它会占用目标机器上的资源,这是用户通常不喜欢的。但也许您可以测量完成第一个动画所需的时间,如果它太慢,则禁用后续动画。
答案 1 :(得分:7)
最简单的解决方案是通过复选框将其留给用户,但是其他方面你可以尝试为计算机计时第一个动画,然后如果它超过一定的时间限制,剩余的动画将被关闭......例如......
var start = new Date();
//... some jQuery animation
var end = new Date();
var diff = end - start;
然后,例如,如果动画需要1.5秒,时差为5秒,则关闭所有剩余的动画。
答案 2 :(得分:5)
我认为有两种选择:
让用户决定 - 为用户提供“低带宽/低规格”选项,点击该选项将显示更简单的网站版本。
尝试检测慢速计算机 - 您可以尝试使用超时脚本检测慢速计算机 - 如果动画/加载未在一定时间内完成切换到网站的简单版本。这种方法的缺点是你不知道为什么脚本超时 - 也许这是一个糟糕的连接或用户正在加载其他东西同时暂时放慢他们的机器。
希望这会给你一些想法。
约什
答案 3 :(得分:1)
我想指出,如果您要将其留给用户(我认为这是一个好主意),您应该明确表示您询问计算机速度,而不是连接速度或带宽。用户可能拥有一台非常快的笔记本电脑,但正在进行缓慢的公共Wi-Fi连接,反之亦然。由于Javascript是客户端的,因此只需要计算机速度。
答案 4 :(得分:0)
鉴于JavaScript在部分信任环境中运行,我认为你无法获得任何操作系统级别的信息。
你能做的最好的事情就是测试“响应能力”。一种可能的方法是通过将目标帧速率与“实际”帧速率进行比较来开始播放完整动画并检测滞后。然后,您可以简单地跳过动画(代码)的位以减少计算时间,从而相应地提高响应性/帧速率。这实质上是有多少桌面游戏检测到滞后,从而降低了动画的复杂性。我无法保证它在使用JavaScript的浏览器中同样可以正常工作,但它肯定值得一试。
答案 5 :(得分:0)
我猜你要关闭的代码需要花费大量时间才能运行。
我建议你: