ハイパフォーマンス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は使いこなせてないなーってとても感じました。
地道にやっていかないとそうそう使えるようにはならないだろうから、着実に着実に。