トップ «前の日記(2009-09-16) 最新 次の日記(2009-09-18)» 編集

日々の破片

Subscribe with livedoor Reader
著作一覧

2009-09-17

_ とっても遅いページの作り方

trがたくさんあるtableを作って、その中で個々のカラム(idxxxみたいなidをつけてあってxxxが行番号になってたりする)をgetElementByIdでアクセスすると、死よりも遅い。

for (var i = 0; i < document.getElementsByName('tr').length; i++) {
   var col1 = document.getElementById('col1-'+i);
   ...
   var coln = document.getElementById('coln-'+i);
   ...
}

それは当たり前だけど、Javaプログラマとかって、ばかよりも簡単な自明なコードを書け教育みたいなものをへたすりゃ受けているから、あほちん、そんなものはgetElementsByTagNameでtrとってるんだから、tr要素回してその中で子供取れとか、クライアントサイドでぐるぐる回すことがわかっているなら、行番号付きidとか用意するよりもすべてのカラムに同じ名前を付けといてgetElementsByNameで全カラム取ってそれでぐるぐる回せとか言っても、なぜにそんなとりつきいなことするんですか、このとろつきすと、みたいな反応になってもおかしかないなぁ。

しかし、getElementsByNameでがめた場合の並び順というのはHTML上の並び順と同一なんだろうか? あるいは、foreachで回した場合の出現順はどうなんだろうか? とかは2. Document Object Model HTMLを読んでも出てないな。というか後者はJavaScriptの実装だから出てないのは当然か。

本日のツッコミ(全2件) [ツッコミを入れる]
_ なるせ (2009-09-17 09:46)

この手のちょっと細かい話は従来仕様には盛り込まれてないんですが、HTML5では取り込もうという話になっていまして、そこではtree-order (行きがけ順深さ優先探索)となっていますね。<br>http://www.whatwg.org/specs/web-apps/current-work/#dom-document-getelementsbyname

_ arton (2009-09-17 12:49)

おお、どうもありがとうございます。細かい仕様だけど、決まってないとおっかないですからね。


2003|06|07|08|09|10|11|12|
2004|01|02|03|04|05|06|07|08|09|10|11|12|
2005|01|02|03|04|05|06|07|08|09|10|11|12|
2006|01|02|03|04|05|06|07|08|09|10|11|12|
2007|01|02|03|04|05|06|07|08|09|10|11|12|
2008|01|02|03|04|05|06|07|08|09|10|11|12|
2009|01|02|03|04|05|06|07|08|09|10|11|12|
2010|01|02|03|04|05|06|07|08|09|10|11|12|
2011|01|02|03|04|05|06|07|08|09|10|11|12|
2012|01|02|03|04|05|06|07|08|09|10|11|12|
2013|01|02|03|04|05|06|07|08|09|10|11|12|
2014|01|02|03|04|05|06|07|08|09|10|11|12|
2015|01|02|03|04|05|06|07|08|09|10|11|12|
2016|01|02|03|04|05|06|07|08|09|10|11|12|
2017|01|02|03|04|05|06|07|08|09|10|11|12|
2018|01|02|03|04|05|06|07|08|09|10|11|12|
2019|01|02|03|04|05|06|07|08|09|

ジェズイットを見習え