ハイパフォーマンスJavaScript 7章〜10章
読む時間が全然とれなくて5〜6日放置だったのがやっと読めました。でもでも7章のAjaxはほとんどわからずじまいというか、Ajax扱った事ほとんどないしわかるわけないや。
これからAjax扱うだろうからそのときにまた読み直そう。
リテラルの利用
var obj = new Object(); obj.aaa = 1 obj.bbb = 2; var ary = new Array(); ary[0] = 0; ary[1] = 1;
よりも
obj = { aaa: 1, bbb: 2 }; ary = [0, 1];
の方が速いとか。いままで後者の書き方しかしたことないから、今まで通りに書いてればいいんだね。
処理を繰り返さない
function addEvent(obj, type, func) { if (document.addEventListener) { obj.addEventListener(type, func, false); return; } obj.attachEvent('on' + type, func); }
みたいなコードを書いてaddEventが頻繁に呼び出される場合、if文が毎回評価されるので速度的によろしくない。
var addEvent = (document.addEventListener) ? function(obj, type, func) { obj.addEventListener(type, func, false); } : function(obj, type, func) { obj.attachEvent('on' + type, func); };
のような感じにするといい。
アプリケーションのビルドと配置
- Antでビルドプロセスを自動化する
- えー、JRE要るじゃない。インストールしてしまえば環境非依存だけど。まあ、ここで言いたいのはビルドプロセスを手動とかでやらないで自動化しましょう、ってことなんだろうなあ。
- JavaScriptファイルの結合
- 1つにまとめてコネクションを減らしましょう。
- JavaScriptの最小化
- YUI CompressorとかClosure Compilerとかを使ってファイルを小さくしましょう。ついでにgzipで圧縮する?
- CDNを使おう
- jQueryとか使ってる場合はhttp://code.google.com/intl/ja/apis/libraries/を使えば速くなるかも。
その他ツール
各ブラウザの開発支援ツール(?)などの説明とかとか。FirebugとかWebインスペクタとか。
あとはGoogle Page Speedとか、Fiddlerとか、YSlowとか。
知らなくて気になったのはYUI Profilerかな。
まあなんというか、まだまだJavaScriptは使いこなせてないなーってとても感じました。
地道にやっていかないとそうそう使えるようにはならないだろうから、着実に着実に。