我使用JSF 2.0开发了一个包含超过1100行代码的网页。 该页面还包含许多PrimeFaces组件。我也使用JQuery来显示和消失组件。
该网页在Firefox 4.0和3.16浏览器中具有响应性。但是,当我在具有Firefox 3.05b的服务器中部署该站点时,在该页面中执行涉及Ajax的某些操作之后,所述网页似乎缓慢且无响应。甚至页面都无法快速滚动。
这种迟缓可能是什么原因?是与浏览器的JavaScript处理引擎相关的东西吗?需要一些建议来克服这个冻结的页面。感谢。
更新
答案 0 :(得分:5)
有些代码很有用。
如果HTML文档很大,那么使用jQuery扫描/遍历DOM可能会很昂贵。
jQuery选择器按性能排名如下:
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样式选择器组合在一起,以两种方式获得更好的性能:
选择器性能的优化对于高效的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/