id太多会影响性能吗
Does Too many ids hurt performance
如果在页面中元素上有不必要的id
,就像ASP.Net-MVC
中的HTML Helper
一样
它会降低我的id选择器的性能吗?(我有一个页面有大量的元素)
示例:
// First DOM
<HTML>
...
<input type="text" value="first" id="useless" />
<input type="text" value="second" id="useful" />
</HTML>
// Second DOM
<HTML>
...
<input type="text" value="first"/>
<input type="text" value="second" id="useful" />
</HTML>
脚本:
<script>
alert($('#useful').val());
// never select the first element (with the useless id)
</script>
简短回答,无
http://www.stevesouders.com/blog/2009/03/10/performance-impact-of-css-selectors/
几个月前,有一些关于低效CSS选择器对性能影响的帖子。我很感兴趣——这就是我为之而活的那种浏览器特有的行为。在进一步的调查中,我不太确定是否值得花时间来提高CSS选择器的效率。我会更进一步地说,如果我们明天醒来,每个网页的CSS选择器都被神奇地优化了,我想没有人会注意到。。。
我修改了测试如下:
- 2000个锚点和2000个规则(而不是20000个)——这实际上导致了大约6000个DOM元素,因为所有嵌套在P、DIV、DIV中
- 与所有其他页面一样,基线页面和标记选择器页面有2000条规则,但这些都是简单的类规则,与页面中的任何类都不匹配
我在12个浏览器上运行了这些测试。页面呈现时间是用页面顶部和底部的脚本块来测量的。(我从本地磁盘加载了页面,以避免可能受到分块编码的影响。)…
基于这些测试,我有以下假设:对于大多数网站来说,优化CSS选择器可能带来的性能收益很小,而且不值得付出代价。有些类型的CSS规则和与JavaScript的交互会使页面明显变慢。这是重点…
选择id的速度与jQuery备份到本机的速度一样快
document.getElementById
功能。尽管如此,如果您经常使用选择器,您可以缓存它们(将它们保存在变量中)。
虽然JavaScript性能不会受到影响,但成千上万的ID会使HTML变得更大,从而增加加载时间和流量成本。它可能可以忽略不计(压缩图像和其他资源要重要得多),但可能是优化的途径。
在jQuery中通过id选择元素是少数几个在页面上有许多元素时不会收到性能影响的选择器之一。
另一方面,如果您是根据类或属性值来选择元素,那么您将看到显著的性能提升。如果您担心性能问题,也要确保通过将选择器存储在变量中以供重用来缓存jquery选择器。
var element = $("#specificElement");
console.log(element.val());
- NodeJ中的注释会影响性能吗
- 设置1400个Raphael.js对象的不透明度动画会影响动画性能
- javascript getAttribute是否会影响性能或触发布局
- Coffeescript 隐式返回对性能和副作用的影响
- 行之间有空格会影响 JavaScript 代码的性能吗?
- 角度 1 路绑定不影响性能
- 数字精度如何影响 JavaScript 的性能,或者会影响性能
- ng-csp指令的性能影响
- 解除所有元素上的所有 jQuery 事件的性能影响
- Meteor 中的客户端渲染和光纤的性能影响
- 在计时器中持续访问 Cookie 的性能影响
- Node.js中未使用需求的性能影响
- Javascript-命名空间嵌套是否存在任何硬性限制(或性能影响)
- 对加载相关下拉列表的性能影响,最多约30000条记录
- 在一个应用程序中使用多个角度应用程序时的性能影响
- 1)对函数内部函数的性能影响2)多个条件下的顺序或流程
- KineticJS - KineticJS . node .listening()的性能影响
- 在Redux中切换到Immutable.js.性能影响是什么?对组件的影响是什么? '语法
- JavaScript base62编码的性能影响
- JavaScript对象文字表示法与普通函数及其性能影响