代码之家  ›  专栏  ›  技术社区  ›  g t Omri Btian

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

  •  14
  • g t Omri Btian  · 技术社区  · 14 年前

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

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

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

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

    3 回复  |  直到 13 年前
        1
  •  7
  •   Anurag    14 年前

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

    使用一个很小的预定义时间跨度来限制允许这些测试运行的时间。假设这个跨度是200毫秒,并且在一台带有浏览器A的快速机器上,你可以得到100个迭代,而在一些随机用户的机器上,它只能完成5个迭代,那么你可能想考虑在用户的机器上禁用它。调整和调整,直到找到最佳数字。

    另外,将所有测试结果发送回服务器,这样您就可以更好地了解用户在速度谱中的位置。如果大多数用户使用的是速度较慢的计算机和较旧的浏览器,那么完全删除它可能是有意义的。

        2
  •  6
  •   Peter Mortensen Abd Al-Kareem Attiya    13 年前

    你可以通过在一个循环中循环几次来完成这项工作,这个循环在页面加载上做了一些密集的处理,但是这会减慢页面速度,并进一步增加CPU负载,所以它看起来不是一个很好的解决方案。

    不过,我过去使用的一个折衷办法是基于浏览器版本做出决定,例如,Internet Explorer 6用户可以获得更简单的内容,而具有更好JavaScript性能的新浏览器可以获得动画。在实践层面上,这似乎很有效。在实践中,浏览器的选择是影响JavaScript性能的一个重要因素,只要考虑到这一点,您就可能获得90%的匹配度。

        3
  •  1
  •   Haroldo    14 年前

    你可以做点什么 $(window).width() 获取浏览器宽度。利用这个你可以假设 < 1024px Wide可能是上网本、智能手机或旧电脑。

    这将不会像计时一个循环那样精确,但更有效。

    很明显,这条规则是一个概括,并且会有一些速度较慢的计算机,带有>1024px。但一般来说,1024px+计算机通常能够处理相当多的javascript(直到所有者加载软件、病毒扫描和浏览器工具栏!)

    希望这是有用的!