根据用户计算机的性能禁用JavaScript功能

时间:2010-07-18 16:34:27

标签: javascript jquery performance jquery-plugins

我的网站有一个jQuery脚本(来自 Shadow animation jQuery plugin ),它不断更改主页上各种<div>的盒子阴影的颜色。

动画不是必需的,但它在较慢的机器上占用了大量的CPU时间。

是否有可能找出脚本是否会“运行得太慢”?然后,我可以在它影响性能之前将其禁用。

这是一个好主意吗?如果没有,是否有一种简单的方法来分解jQuery动画?

3 个答案:

答案 0 :(得分:7)

这可能会间接解决您的问题。从这个与您的jQuery插件类似的网站http://dromaeo.com/中选择一些算法和性能测试。不要像在网站上那样运行全面的测试。相反,选择相当小而快速的算法,并在不明显的时间段内运行它们。

使用微小的预定义时间跨度来限制允许这些测试运行的时间。假设该跨度为200毫秒,并且在具有浏览器A的快速机器上,您可以获得100次迭代,而在某个随机用户的机器上,它只能完成5次迭代,那么您可能需要考虑在用户上禁用它机。调整并调整,直到找到最佳数字。

作为奖励,将所有测试结果发送回您的服务器,以便您更好地了解用户在速度范围内的位置。如果绝大多数用户使用较慢的计算机和较旧的浏览器,那么完全删除它就可能是有意义的。

答案 1 :(得分:6)

你可以通过对循环进行几次定时来完成它,这会对页面加载进行一些密集处理,但这会减慢页面速度并进一步增加CPU负载,所以它似乎不是一个很好的解决方案

我过去使用的折衷方案是根据浏览器版本做出决定,例如,Internet Explorer 6用户获得更简单的内容,而具有更好JavaScript性能的新浏览器获得动画。这似乎在实际水平上运作良好。在实践中,浏览器选择是JavaScript性能的一个重要因素,只需考虑到这一点,您就可以获得90%的符合要求。

答案 2 :(得分:1)

您可以执行$(window).width()之类的操作来获取浏览器宽度。使用此功能,您可以假设< 1024px宽的任何内容都可能是上网本,智能手机或旧计算机。

这并不像定时循环那样准确,但效率更高。

显然它的这个规则是一个概括,并且会有一些带有&gt;的慢速计算机。 1,024像素。但一般来说,1024px +计算机通常能够处理相当多的javascript(直到所有者放置大量软件,病毒扫描和浏览器工具栏!)

希望这很有用!

相关问题