今日のお題は、プロの Web プログラマーの中では有名なネタです。
JSON と組み合わせて AJAX っぽいコードを書くときは大活躍します。
知らなかった方は是非覚えて行ってください。
今日のお題は、「JavaScript の文字列結合の最適化」 です。
文字列の足し算をしたいときに、書き方によっては数百倍の実行速度の差が出てきます。
普通の書き方
普通は、次のように書きますよね?
var s = 'aaa' + 'bbb' + 'ccc';
alert ( s );
これを次のように配列にしてデータを取っておいて、使うときに join でつなげてあげるだけで、実行速度は断然速くなります。
速い書き方
var s = [ 'aaa' , 'bbb' , 'ccc' ];
alert( s.join('') );
または
var s = new Array();
s.push( 'aaa' );
s.push( 'bbb' );
s.push( 'ccc' );
alert( s.join('') );
これだけで、足し算回数が多いときなら、IE では体感できるくらい速くなる場合があります。
是非試してみてください。
おまけ: 細かいお話
ちなみに、これは IE のときに特に有効な最適化方法です。私が試した限りでは、Firefox では Array.push の方がわずかに遅くなるようでした。ですが、その遅くなり方は非常にわずかで、数 ms という話です。しかし、IE の場合はその改善幅は数 ms 程度ではなく、きわめて大きな差になります。ですから、私は文字列の足し算は常に Array.push を使うほうが良いのではないかと思います。詳細等は下記の私のウェブサイトをご覧ください。
JavaScript の文字の結合を最適化する
http://keicode.com/script/scr03.php