0

我一直在阅读包含以下内容的 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 ......而不是使用 DOM 调用document.getElementById(),等等......

4

1 回答 1

1

但是,我在多个网站上读到,在 html = ""... 中创建整个列表更快、更清晰。

如果您的意思是,someElement.innerHTML = "HTML tags here";那么是的,在大多数情况下它会更快,因为从根本上解析和渲染 HTML 是浏览器所做的,因此它们的速度非常快,而如果您使用 DOM 调用构建东西,则有很多跨各种旅行层(JavaScript、DOM、浏览器内部)。

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

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

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

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

那是他们的问题。:-)

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

将 jQuery 用于所有或几乎所有 DOM 操作没有任何问题;它真的很擅长,并且为您节省了很多时间和麻烦。您应该熟悉DOM,以便在适当的时候使用它(jQuery 不能做所有事情;特别是它不擅长处理文本节点),但这并不意味着您不应该在何时何地使用 jQuery合适的。

为此,一些阅读:

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

于 2012-04-27T10:06:12.103 回答