2009-08-06 11 views
1

これに興味がありますか?JavaScriptをキャッシュすることは可能ですか?すなわち、私はブラウザをリフレッシュするたびに、いくつかのロジックを再計算するために必要なクライアントCPUを最小限に抑えるためですか?JavaScriptをキャッシュできませんか?

たとえば、Googleのjavascriptマップを使用します。私は自分のページで地図をエフェクトしたとき、自分のページで使用できるキャッシュメカニズムはありますか?

答えて

2

クライアントは.jsファイルをローカルにキャッシュすることができますが(ダウンロードできないようにします)、このファイルが実行する操作はすべての負荷で実行されます。

Googleマップでは、マップを表示するために操作を実行する必要があります。それ以外の場合、クライアントに.jsファイルをキャッシュさせる(ダウンロードを保存する)ことはできません。

クライアントの処理量を制限するか、処理結果がスカラー(Strings、numbers、array of)の場合は、後で使用できるようにクッキーに格納することができます。 DOM操作はすべての負荷で実行されます。

できるだけ重い処理をサーバーで実行してください。

3

JavaScriptの実行は、各ページの負荷に基づいて行われます。 1つの選択肢は、計算を実行する前に値がすでに計算されているかどうかを確認することによってJavaScriptを呼び出す方法を変更することです。これを達成するには、計算された値を、セッション、クエリー文字列パラメータとしてのURL、またはクッキーなどの状態の何らかの形式で格納する必要があります。これにより、ページが初めて読み込まれたときに、その値が計算されて格納されます。後続の各ページの読み込みごとに、値は再計算されるのではなく状態から引き出されます。

1

JavaScriptをコンパイルした結果をキャッシュすることはできませんが、アプリケーションロジックが必要になるまでロードすることはできません。つまり、ロジックが必要な瞬間に、新しい<スクリプト>タグあなたが必要とする機能性のためのDOMを通して。

+0

には例がありますか? – cometta

+0

GWTはこれらの行に沿っていくつかのサポートを提供しています。http://googlewebtoolkit.blogspot.com/2008/11/improving-performance-with-on-demand.htmlとhttp://groups.google.com/group/を参照してください。 Google-Web-Toolkit-コントリビュータ/ browse_thread/thread/eb9c8cf046cbaaf2 – bdonlan

0

Googleのサーバーから、javascriptによって読み込まれた画像についてお話していると思いますか?

各詳細レベルの画像の巨大なグリッドがあり、これらをキャッシュするのは論理的に意味がありません。 Googleマップで数分間スクロールすると、ハードドライブを何度も塗りつぶすのに十分な画像が得られます。

一部のブラウザでは、javascriptだけでなく他のブラウザも処理しません。 Firefoxは一時的に遅れていますが、Google ChromeとSafariの両方が非常に高速です。 Safariはダウンロードする価値があります。開発ツールでは、何が起こるのかがずっと時間のかかるものです。

関連する問題