文字列接合のパフォーマンスの最適化
2800 ワード
var htmlString = '<div class="container">' + '<ul id="news-list">',
for (var i = 0; i < NEWS.length; i++) {
htmlString += '<li><a href="'+NEWS[i].LINK +'">' + NEWS[i].TITLE + '</a></li>';
}
htmlString += '</ul></div>';
配列に変更し、join()メソッドで文字列に変更します.文字列が作成されると、その値は変更できません.ある変数が保存している文字列を変更するには、まず元の文字列を破棄し、新しい文字列で変数を埋め込む必要があります.そのため、文字列の接合速度が遅く、効率が低いです.
var htmlString = '<div class="container">' + '<ul id="news-list">',
elem,
array=[],
for (var i = 0,len=NEWS.length;i<len;i++) {
elem= '<li><a href="'+NEWS[i].LINK +'">' + NEWS[i].TITLE + '</a></li>';
array.push(elem);
}
array.join("");
htmlString += '</ul></div>';
例を挙げます.次のコードのパフォーマンスの問題を指摘し、最適化してください.
var info=" (www.paipai.com) 。";
info +=" 2005 9 12 ,";
info +="2006 3 13 ,";
info +=" 。";
info=info.split(",");
for(var i=0; i<info.length; i++)
{
alert(info[i]);
}
文字列が大きいと、つなぎ合わせる時間が長くなり、効率が悪くなります.もう1つは、ループのたびに配列の長さを計算しないように、ループを最適化することです.そのため、配列の長さを変数に割り当て、最初のループでのみ計算します.
var array=[],
info;
array.push(" (www.paipai.com) 。");
array.push(" 2005 9 12 ,");
array.push("2006 3 13 ,");
array.push(" 。");
info=array.join("").split(","); // for(var i=0,len=info.length;i<len;i++)
{
alert(info[i]);
}