javaScript階段-高価な集合
1642 ワード
1 var alldivs = document.getElementsByTagName('div');
2 for (var i = 0; i < alldivs.length; i++) {
3 document.body.appendChild(document.createElement('div'));
4
5 }
/*関数はデッドサイクルで、繰り返しごとにクエリー操作を行います./*集合を配列にコピーし、循環データは循環集合より効率が高い*/
function toArray(coll) {
for (var i = 0, a = [], len = coll.length; i < len; i++) {
a[i] = coll[i];
}
return a;
}
var coll = document.getElementsByTagName('div');
var len = coll.length;
var arr = toArray(coll);
function loopCollection() {
for (var count = 0; count < coll.length; count++) {
/* */
}
}
function loopCollection(coll) {
for (var count = 0; count < arr.length; count++) {
/* */
}
}
//*要素セットのlength属性を読み込むと、集合が更新されます.最適化方法は簡単です.集合長をローカル変数にキャッシュします.*/
function loopCollection() {
var alldivs = document.getElementsByTagName('div');
var len = coll.length;
for (var count = 0; count < coll.length; count++) {
/* */
}
}
/*
1同じDomの属性と方法が複数のアクセスを必要とする場合、このメンバ#2をローカル変数でキャッシュするのがベストです.まず最適化の原則は、集合を局所変数に混ぜて存在し、lengthを集合外部でまとめます.