Aka*_*ava 2 html javascript css jquery
案例:e是类型HtmlElement而不是css selector
我在谈论任何属性,而不仅仅是标准允许的属性,atom-type或者data-atom-type,无论名称是什么,它是否可以在没有jQuery的情况下工作?
我怀疑$(e).attr(name,value)它太慢了,首先它是创建一个完整的jQuery对象 ($(e) !== $(e) // two objects are not same)(jsPerf:http://jsperf.com/jquery-attr-vs-native-setattribute/28 )然后它调用某些检查,然后设置值,其中大多数浏览器轻松支持e.setAttribute.
有没有更换任何问题$(e).attr(name,value)来e.setAttribute(name,value)?
IE8支持setAttribute根据MSDN文档.是否有任何移动浏览器或任何不支持它的浏览器?
最终我想提高我的JavaScript框架的性能,最初我们广泛使用jQuery来实现其跨浏览器DOM功能.
我们现在已经明白,除非你正在使用css selector,否则attr,val,text当你有实例时,大多数函数都可以用它们的直接DOM计数器部分进行更好的调用HtmlElement.
我怀疑
$(e).attr(name,value)它太慢了,首先它创建了一个完整的jQuery对象,然后调用某些检查,然后设置值,大多数浏览器都很容易支持e.setAttribute.
如果你测量它,你会发现性能上的差异相对来说很大,但绝对值是微不足道的,而且它是我们通常关心的绝对术语.它在99.999999%的情况下无关紧要.如果遇到特定的性能问题,并使用jQuery跟踪它,那么请考虑在那时进行优化.
$(e).attr(name,value)vs的好处是e.setAttribute(name,value)什么?
在你提到的具体情况,在这里e是一个HTMLElement,现在只有几个好处:
有一些IE特定的错误setAttribute,jQuery适合你
还有一些"属性"人,当他们真的应该设置一个属性,例如设置checked或disabled; jQuery映射那些(现在这主要是传统功能,因为人们应该使用prop)
它为你做一些布尔值的预处理,让你$(e).attr("checked", true)在true真正应该的时候使用它"checked"
IE8根据MSDN文档支持setAttribute.是否有任何移动浏览器或任何不支持它的浏览器?
所有的浏览器都支持setAttribute.正如我前面提到的,IE的各种版本都有各种各样的错误,但它存在并且大部分都有效.
| 归档时间: |
|
| 查看次数: |
161 次 |
| 最近记录: |