论坛首页 Web前端技术论坛

深入讨论document.getElementById

浏览 11878 次
精华帖 (1) :: 良好帖 (7) :: 新手帖 (7) :: 隐藏帖 (1)
作者 正文
   发表时间:2009-08-19  
iaimstar 写道
你怎么不用剑圣的头像了。桑原好挫啊


原因有2

1: 桑原是人类

2: 桑原也有剑

^^
0 请登录后投票
   发表时间:2009-08-19  
zbm2001 写道
所以 方法调用返回值 vs 变量调用,它们的用时对比无法在同一个量级上。
——即便是优化了的js引擎内置对象的方法也是如此。

引用

……证明document.getElementById绝对没有做遍历节点的操作.getElementById里面最有可能执行的是一个类似这样的方法:
document.getElementById = function(id){
  //...doSomeThing
  return 节点集[id];
}

对于一部分浏览器这个结论我还是比较赞同的,引擎基于底层语言和内置hash有条件做各种内置方法的优化,
但是各个浏览器对js引擎内置对象的方法优化程度也良莠不齐,
像IE6/7那样未优化或优化远远不到位就更是要注意了。



恩,我的观点只是想说明,document.getElementById跟普通的操作dom节点是不一样的.说白了用引用或者直接用getElementById是一个时间换空间还是空间换时间的问题.毕竟定义过多的临时变量也是有坏处的,且不说临时变量长相不佳,一不小心还有跟浏览器躲猫猫的情景,当然仔细点是可以完全避免的,不过如果我们可以从来不关心它,又何乐而不为呢.
0 请登录后投票
   发表时间:2009-08-19  
lifesinger 写道
从编程者出发,即便浏览器对getElementById有优化,但无论怎么优化,至少得多一层调用。直接保存引用,效率依旧更好。

更多的是一种编程习惯:用空间换取时间。

另:闭包的开销,Chrome和Safari等浏览器也有优化,深层闭包,也无多大影响。但作为一个良好的编码习惯,在保证可维护性的前提下,尽量减少闭包依旧是值得推崇的。

一切都是权衡。


同意你的观点,我不喜欢每次都写那么长长的一串 document.getElementById ,不嫌效率我还嫌手软呢
0 请登录后投票
   发表时间:2009-08-19   最后修改:2009-08-19
kaipingk 写道
lifesinger 写道
从编程者出发,即便浏览器对getElementById有优化,但无论怎么优化,至少得多一层调用。直接保存引用,效率依旧更好。

更多的是一种编程习惯:用空间换取时间。

另:闭包的开销,Chrome和Safari等浏览器也有优化,深层闭包,也无多大影响。但作为一个良好的编码习惯,在保证可维护性的前提下,尽量减少闭包依旧是值得推崇的。

一切都是权衡。


同意你的观点,我不喜欢每次都写那么长长的一串 document.getElementById ,不嫌效率我还嫌手软呢


呵呵,我打document.getElementById的手指速度跟打lihao差不多了.
0 请登录后投票
   发表时间:2009-08-19  
kaipingk 写道
lifesinger 写道
从编程者出发,即便浏览器对getElementById有优化,但无论怎么优化,至少得多一层调用。直接保存引用,效率依旧更好。

更多的是一种编程习惯:用空间换取时间。

另:闭包的开销,Chrome和Safari等浏览器也有优化,深层闭包,也无多大影响。但作为一个良好的编码习惯,在保证可维护性的前提下,尽量减少闭包依旧是值得推崇的。

一切都是权衡。


同意你的观点,我不喜欢每次都写那么长长的一串 document.getElementById ,不嫌效率我还嫌手软呢

要$这个干吗的。
0 请登录后投票
   发表时间:2009-08-19  
02221021 写道
kaipingk 写道
lifesinger 写道
从编程者出发,即便浏览器对getElementById有优化,但无论怎么优化,至少得多一层调用。直接保存引用,效率依旧更好。

更多的是一种编程习惯:用空间换取时间。

另:闭包的开销,Chrome和Safari等浏览器也有优化,深层闭包,也无多大影响。但作为一个良好的编码习惯,在保证可维护性的前提下,尽量减少闭包依旧是值得推崇的。

一切都是权衡。


同意你的观点,我不喜欢每次都写那么长长的一串 document.getElementById ,不嫌效率我还嫌手软呢


呵呵,我打document.getElementById的手指速度跟打lihao差不多了.


强,像我这些动作不熟练的只有封装一些代码来简化输入操作
0 请登录后投票
   发表时间:2009-08-20  
LZ你的头像真的好挫。能不能换个
0 请登录后投票
   发表时间:2009-08-20  
IE的JS引擎真是无语,现在做EXT项目,正在发愁中。。。
0 请登录后投票
   发表时间:2009-08-20  
zlwgege 写道
LZ你的头像真的好挫。能不能换个

LZ的头像是樱木吗??
0 请登录后投票
   发表时间:2009-08-20  
幽游白书的桑原。。。。哈哈
0 请登录后投票
论坛首页 Web前端技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics