页面反应迟钝的原因是什么?

时间:2011-04-05 10:11:00

标签: javascript firefox jsf-2 primefaces

我使用JSF 2.0开发了一个包含超过1100行代码的网页。 该页面还包含许多PrimeFaces组件。我也使用JQuery来显示和消失组件。

该网页在Firefox 4.0和3.16浏览器中具有响应性。但是,当我在具有Firefox 3.05b的服务器中部署该站点时,在该页面中执行涉及Ajax的某些操作之后,所述网页似乎缓慢且无响应。甚至页面都无法快速滚动。

这种迟缓可能是什么原因?是与浏览器的JavaScript处理引擎相关的东西吗?需要一些建议来克服这个冻结的页面。感谢。

更新

以下是HTML SourceJSF Source

1 个答案:

答案 0 :(得分:5)

有些代码很有用。

如果HTML文档很大,那么使用jQuery扫描/遍历DOM可能会很昂贵。

jQuery选择器按性能排名如下:

  1. #ID
  2. 元素
  3. .class,:pseudoclass and:custom
  4. Class和PseudoClass以及Custom选择器比ID和Element选择器慢。通过将它们与其他选择器类型相结合,可以减轻其性能的不足,所以尽可能这样做。

    示例:

    $(".oddRows");                   //Inefficient: scans DOM for all elements with oddrows class
    $("tr.oddRows");                 //More efficient: Searches only <tr>s with oddrows class
    $("#MyTable tr.oddRows");        //More efficient: searches descendents of #MyTable
    $("#MyTable>tbody>tr.oddRows");  //Best: searches immediate children
    

    在这些示例中,我们将CSS样式选择器组合在一起,以两种方式获得更好的性能:

    • Element.WithClass - 即。搜索具有指定类名的元素
    • #Id后代 - I.e.在Id的后代内搜索。
    • #Id&gt;儿童 - 即。只搜索直接的孩子

    选择器性能的优化对于高效的jQuery至关重要。这必须是开发人员和代码审查人员的主要考虑因素。

    编辑Re FireFox和JavaScript速度 有几篇文章建议FF的后续版本引入了性能增强:

    3.1 - http://news.softpedia.com/news/Firefox-3-1-Gets-Major-JavaScript-Speed-Boost-92382.shtml

    3.6。 http://hacks.mozilla.org/2010/01/javascript-speedups-in-firefox-3-6/