Javascript文体学 - 专业外观代码

时间:2012-04-27 09:59:01

标签: javascript

我一直在阅读包含以下内容的JS书籍:

function onSuccess(entries) {
    document.getElementById("loading").innerHTML="";
    var ul = document.getElementById("file-listing");
    for(var index=0;index<entries.length;index++) {
        var li = document.createElement('li');
        li.innerHTML = entries[index].name;
        ul.appendChild(li);
    }
}

但是,我在多个网站上读到,在html =“”中创建整个列表更快更干净,添加ul和li元素然后添加块,将其全部添加到一个调用中...所以我我想知道我是否应该遵循我在许多js书中找到的风格或我在性能博客上看到的内容?我最担心的是,如果我使用之前的代码块,那么阅读我的代码的人会觉得它很业余。此外,我遇到了一些人,就像你使用的是jQuery ...而不是像document.getElementById()等使用DOM调用......

1 个答案:

答案 0 :(得分:1)

  

但是,我在多个网站上看到,在html =“”中创建整个列表更快更干净...

如果你的意思是,someElement.innerHTML = "HTML tags here";那么是的,在大多数情况下它会更快,因为从根本上解析和呈现HTML 是什么浏览器,因此它们非常快,而如果你使用DOM调用构建东西,每次都有很多跨越各层(JavaScript,DOM,浏览器内部)的行程。

但是 :在大多数情况下,这也没关系。如果你要渲染一个包含大量列的2,000行表,那就很重要了;但如果你不这样做,那大多数都没关系。您可以在遇到问题时进行优化。

  

所以我想知道我是否应该遵循我在许多js书中找到的风格或我在性能博客上看到的内容?

你应该做任何看起来最干净,最清晰,最容易的事情。

  

我最担心的是,如果我使用之前的代码块,那么阅读我的代码的人会觉得它很业余。

这是他们的问题。 : - )

  

此外,我遇到了一些人,就像你使用的是jQuery ...而不是使用像DOM.getElementById()等DOM调用......

将jQuery用于所有或几乎所有的DOM操作都没有错;它非常擅长,为您节省了大量时间和麻烦。你应该熟悉与DOM,所以你可以在适当的时候使用它(jQuery不会做任何事情;特别是它不擅长处理文本节点),但这并不意味着你不应该在适当的时候和地点使用jQuery。

为此,有些人在阅读:

...但是,这并不意味着你应该仅仅因为有人瞧不起使用jQuery而使用它。适当使用工具。重要的是理解你正在使用的工具(包括jQuery,以及DOM本身),这样你就可以了解应用它们的时间和地点。

相关问题