1

複数のJavaScriptファイルを使用してPHPアプリケーションをホストしています。現在、javascriptファイルのURLにgetパラメーター(タイムスタンプ)を追加することでキャッシュを無効にします。例:http: //ourserver.com/scripts/something.js?cachebust = 1289438903

ファイルの数が増えると、アプリケーションのパフォーマンスが低下します。jsビルドシステムからapache2構成まで、この問題を軽減するために使用できるさまざまなソリューションは何ですか?アプリケーションコードと現在の開発ワークフローの変更を最小限に抑える必要があるオプションはどれですか?

4

1 に答える 1

2

私たちがしているのは、縮小して結合する必要のあるファイルを取得し、それらのURLを作成するphpスクリプトを用意することです。スクリプトはそれを実行し、すべてのファイルのバージョン番号の連結のハッシュも作成します。ハッシュは&hash=<hash>パラメータとしてURLに追加されます。スクリプトは次のようなものを生成しました:

http://path/to/minifier/script.php?files=core.js,somecode.js,someothercode.js&hash=da39a3ee5e6b4b0d3255bfef95601890afd80709.

これはクライアントに送信され、ブラウザがリクエストを実行します。ミニファイアスクリプトは、パラメータを取得し、それらを最小化(またはキャッシュから取得)し、それらを連結して送り返します。ハッシュはスクリプトのバージョンの関数であるため、ファイルの1つが変更されると更新されます。また、バージョンはファイルが変更されたときにのみ変更されるため、不要なキャッシュバストは発生しません。これを行うスクリプトは複数あります。wro4j(java)を使用しますが、phpスクリプトが存在します。

編集:本番環境でバグ修正できるようにするためにdebug=true、ミニファイアスクリプトに実際にはミニファイせず、連結されたスクリプトを返すように指示するパラメーターもあります。

于 2012-12-17T22:24:24.783 に答える