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 要素を追加してからブロックを追加し、すべてを 1 回の呼び出しで追加する方が高速でクリーンであると読んでいます...多くの js の本やパフォーマンス ブログで読んだスタイルに従う必要がありますか? 以前のコード ブロックを使用すると、私のコードを読んでいる人がそれをアマチュアっぽく感じるのではないかと心配しています。また、何人かの人に会ったことがありますdocument.getElementById()

4

1 に答える 1

1

ただし、複数のサイトで、リスト全体を html = "" で作成する方が高速でクリーンであると読みました...

つまり、someElement.innerHTML = "HTML tags here";はい、ほとんどの場合は高速です。基本的に HTML の解析とレンダリングはブラウザーが行うことであり、ブラウザーは非常に高速ですが、DOM 呼び出しで構築する場合は、さまざまなレイヤー (JavaScript、DOM、ブラウザーの内部) を毎回。

しかし: ほとんどの場合、それも問題ではありません。多くの列を含む 2,000 行のテーブルをレンダリングする場合は問題になる可能性があります。しかし、それをしなければほとんど問題になりません。問題が発生した場合に最適化できます。

多くの js の本で見つけたスタイルに従うべきか、それともパフォーマンス ブログで読んだスタイルに従うべきか疑問に思っています。

最もクリーンで、明確で、最も簡単だと思われることを行う必要があります。

以前のコード ブロックを使用すると、私のコードを読んでいる人がそれをアマチュアっぽく感じるのではないかと心配しています。

それが彼らの問題です。:-)

また、document.getElementById() などの DOM 呼び出しを使用する代わりに、jQuery しか使用していないというような人も何人かいます。

すべてまたはほぼすべての DOM 操作に jQuery を使用しても問題はありません。それは本当に上手で、多くの時間と手間を省きます。適切なときに使用できるように DOM に精通している必要があります (jQuery はすべてを実行するわけではありません。特に、テキスト ノードを処理するのは得意ではありません)。適切な。

そのために、いくつかの読書:

...しかし繰り返しますが、誰かが jQuery の使用を軽視しているからといって、それを使用すべきだという意味ではありません。ツールを適切に使用します。重要なことは、使用しているツール (jQuery や DOM 自体を含む) を理解することです。そうすれば、ツールをいつどこに適用すればよいかを理解できます。

于 2012-04-27T10:06:12.103 に答える