Web应用程序在firefox中运行缓慢可能导致此问题 - YUI / Javascript

时间:2011-11-10 19:08:42

标签: javascript yui

我正在一个页面中构建一个Web应用程序。我正在使用YUI来处理事件触发器之类的东西。 HTML Dom不是那么大的50k,它们是包含YUI和其他东西的脚本。这一切都很好 - 运行速度超快铬。 该应用程序正在进行无外部调用,如url抓取/ ajax等。 我的问题是在Firefox中,Dom很迟钝/很慢。即使单击一个按钮,它也会保持按下一会儿然后弹出,即Dom减慢速度,好像有什么东西在背景中减速一样。 我想知道是什么原因引起的。 这可能是由太多的代码,太复杂的对象引起的 - 即json对象,太多的事件处理程序,或整个Dom访问太多。代码运行缓慢并非如此。它不是代码本身。这就是Dom本身很慢的问题,好像它们的代码太多了等等。虽然大多数框架都很庞大但我看不出我的代码那么大。 任何想法或指针都会有所帮助。我很欣赏没有代码或一个例子我无法得到确切的答案我所寻找的是关于什么是不可接受的指针

  1. 页面大小
  2. Dom上的活动数量
  3. json / JavaScript对象的复杂性
  4. 元素中有很多css类选择器,即class =“button babel ui red round disabled trigger”
  5. 这些事情会让Dom变慢吗?如果是这样,那么如何解决它。

2 个答案:

答案 0 :(得分:3)

您可以使用Firebug查看JavaScript挂起的位置。

  1. 打开Firebug。
  2. 点击“控制台”。
  3. 要开始分析,请点击“个人资料”。
  4. 在您的应用程序中,单击您知道响应缓慢的按钮并等待响应。
  5. 再次点击“个人资料”。
  6. 这将为您提供所有执行的JavaScript以及哪些功能耗时最长的列表。这是一个很好的起点,可以弄清楚为什么事情需要这么长时间。可能是YUI能够在Chrome中利用比FF更快的DOM选择器。如果是这种情况,您可能会在页面上添加一些ID以减少这种情况。

答案 1 :(得分:1)

如果我不得不猜测,我会将您列出的参数作为最佳性能排序:

  1. 许多班级选择者
  2. Dom本身的活动数量
  3. JS / JSON对象的复杂性
  4. 页面大小
  5. 但我也在开发中使用Chrome,所以我不确定。