document.getelementbyid vs dom.byid

时间:2013-04-07 06:00:11

标签: javascript dojo

这是一些代码

  var docDiv= document.getElementById("divId");

  var dojoDiv= dom.byId("divId");

javascript的document.getelementbyid和dojo的dom.byid之间有什么区别。哪一个更快。如果你想使用dom,我们需要加载dojo.js。

4 个答案:

答案 0 :(得分:2)

这是Dojo的dom.byId的非IE版本:

dom.byId = function(id, doc){
            // inline'd type check.
            // be sure to return null per documentation, to match IE branch.
            return ((typeof id == "string") ? (doc || win.doc).getElementById(id) : id) || null; // DOMNode
        };

正如您将注意到它使用getElementById。

希望这能回答你的问题。

答案 1 :(得分:1)

我认为document.getElementById()dom.byId()更快,因为dojo在内部使用 document

答案 2 :(得分:0)

来自dojo github代码https://github.com/dojo/dojo/blob/master/dom.js#L51

,内部使用document.getElementById

dom.byId = function(id, doc){
    // inline'd type check.
    // be sure to return null per documentation, to match IE branch.
    return ((typeof id == "string") ? (doc || win.doc).getElementById(id) : id) || null; // DOMNode
};

使用document.getElementById,我们可以避免调用此dom.byId函数!..但性能差异非常小

我更喜欢dom.byId,因为它很短暂。否则我必须在每个地方写出冗长的document.getElementById

答案 3 :(得分:0)

document.getElementById()dom.byId()快。因为dom.byId()需要加载dojo核心文件。