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