iPhone 用の JavaScript コードを圧縮する方法を探しています。小さくてかなり遅いデバイスで多くの CPU 時間を使用しないようにする方法はありますか?
8 に答える
YUIコンプレッサーを使用する
js_compactorとJavaScriptLintを使用して、自動ビルドプロセスでJavaScriptを「コンパイル」および圧縮しました。さらなるビルドステップでは、JavaScriptを圧縮し、関連ファイルを1つのパッケージに結合します。パフォーマンスの向上は重要でしたが、デバッグ機能をトレードオフしていることに注意してください。
クライアントに送信されるファイルの数を減らすと、ファイルの数が少ない場合にパフォーマンスが大幅に向上します。通常、ブラウザは一度に1つのサーバーへの接続を2つしか開かないため、圧縮され最小化されたファイルを送信している場合でも、ブラウザはキャッシュのチェックにかなりのオーバーヘッドを費やします。 yslowは、ページの読み込みに時間がかかった理由を特定し、最適化の取り組みに集中するのに役立ちました。生のファイルまたは最小化および圧縮されたバージョンのいずれかを使用するように環境をインストルメント化しました。
ShrinkSafeが大好きです。コードを Rhino で解釈し、圧縮されたコードを返します。(複雑な文字列評価ではなく) 実際に解釈されたコードで動作するため、コードを変更したり、パブリック変数とプライベート変数の違いを見つけられなかったりすることはありません。
優れた品質のツールです。
iPhoneのSafariはgzip出力をサポートしているので、mod_deflateのようなものを使用できると思います。この方法を使用すると、最良の結果が得られました。かなりの量のJavaScript圧縮があり、絶対的なゴミがあり、大きなファイルをダウンロードするよりも解凍に時間がかかります。ただし、JSMinはかなり良さそうです。
JavaScriptCompressorRaterでさまざまなツールを試すことができます。パッカーを除くすべてのツールは、私が知る限り、JavaScriptの実行速度に影響を与えません。空白を削除したり、変数の名前を変更したりするだけです。
私自身、YUICompressorが最高だと思っています。
最初にJSLintのコードを検証して、コンプレッサーがコードを正しく理解していることを確認すると、常に役立ちます。
クライアントがサポートしている場合、ウェブサーバーが適切に gzip された/圧縮されたものを提供することを確認することは、通常、プログラム コード自体を圧縮するよりも効果的です。もちろん、両方を使用すると、さらに小さいサイズになる傾向があります。
私はここ数日でこの小さなダンスを経験しました。Packerを使用してみましたが、パックされた JavaScript の実行に 2 秒以上かかっていることがわかりました (他のダウンロードのブロックは言うまでもありません)。この記事に基づいて、 YUI Compressorに切り替えました。gzip 圧縮されたファイル サイズが小さいだけでなく、実行時間も 300 ミリ秒未満です。