Optimizing JavaScript™ Programming Language Performance

JavaScriptパフォーマンス最適化のセッション。

JavaOneだからなのか、空席が目立つ。
日本と違い、JavaScriptへの関心が薄いのかもしれない。

実サイトのjs使用の例

    • Digg.com(14のjsファイル・2つのライブラリ)
    • Espn.com(24のjsファイル)
    • Ajaxian.com(12のjsファイル)

パフォーマンスの最適化方法

  • リクエスト数を減らす
    • jsファイルの連結
      • いつ?ランタイムか開発時

例)

jquery.js
plugin.js    ->    ConcatenationProcess -> code.all.js
mycode.js
<head>
<script src=jquery.js”></script>
<script src=plugin.js”></script>
<script src=mycode.js”></script>
</head>


Became

<head>
<script src=combiner.php”></script>
</head>

combiner.php

<?php
//combiner.php
function combineFile($file){
$handle = fopen($file, "r");
if ($handle != null){
echo fread($handle, filesize($file));
}
}
//combine files
combineFile(“jquery.js");
combineFile(“plugin.js");
combineFile(“mycode.js");

連結ツール

• Ant
• Server code
Dojo
• Command line
IDE Support?
• …

サイズを減らす

      • 空白とコメントの除去
      • 改行コードの除去
      • 変数及び関数のパラメータ名を短くする
      • GZIPを使用

以下はNGだから、;をつけようね
X=10
Y="Bob" -> X=10Y="Bob"

コーディングスタイル

ifとかforのあとに1行だけで{}が省略出来る場合は省略する
var宣言を単一のvar宣言にする。var x=1,y=2;

圧縮ツール

•jsMin
•Dean Edward’s Packer
Dojo Shrinksafe
YUI Compressor
•jsLex Eclipse Plugin


全体的におぉ!と唸るような情報はありませんでしたが
JavaOneでのJavaScriptセッションという事で納得することにします。

聞きながらの殴り書きなので、あとで綺麗にまとめます。