2

イントラネットアプリケーションで働いています。したがって、私はクライアントマシンをある程度制御できます。私が使用しているJavaScriptライブラリのサイズはやや大きいです。JavaScriptライブラリを各マシン(各ブラウザも同様)にプリインストールまたはプリロードまたはキャッシュして、リクエストごとに移動しないようにします。ブラウザは後続のリクエスト用にJavaScriptライブラリをキャッシュすることは知っていますが、後続のすべてのリクエスト、セッション、およびユーザー用にライブラリを1回キャッシュしたいと思います。

これを達成するための最良のメカニズムは何ですか?

4

2 に答える 2

4

このためにクライアントマシンにアクセスする必要はありません。ベストプラクティスはすべてサーバーサイドです。

  • すべてをGZipで圧縮します。
  • すべてのJavascriptとCSSを縮小します。
  • 外部HTTPリクエストの数を最小限に抑えます。これらを、たとえば1〜5個のJSファイル、1〜5個のCSSファイル、およびいくつかの画像に保持するようにしてください。画像がたくさんある場合は、CSSスピリットを使用することをお勧めします。
  • 画像、CSS、Javascriptをバージョン管理します。と
  • すべての画像、CSS、およびJavascriptにfarfuturesExpiresヘッダーを使用します。

最後の2つのポイントは、コンテンツが変更されるまでキャッシュされることを意味します。公式リリースには実際のバージョン番号を使用できます(たとえば、jquery-1.4.2.min.js、1.4.2はバージョン番号です)。独自のアプリケーションのコードの場合、多くの場合、ファイルのmtime(最終変更時刻)などをクエリ文字列として使用します。例えば:

<script type="text/javascript" src="/js/code.js?1233454356"></script>

?ファイルの変更時刻からが生成された後。クライアントは一度ダウンロードしますが、Expiresヘッダーが遠いため、バージョン番号が変更されるまで再度ダウンロードされることはありません。バージョン番号が変更されるまで、ファイルは変更されません。

于 2010-03-15T07:10:33.613 に答える
0

JSでの実行からロジックを分離すると、最初のユーザーアクセス時にスクリプト(ロジック)をロードできます。その後、セッション/ Cookieを使用すると、これらのファイルをロードしなくなりますが、必要なときにキャッシュに保存されます。スクリプトにはそれらが含まれているだけで、キャッシュからロードされます。

于 2013-09-27T00:01:37.613 に答える