問題タブ [caching]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
28 に答える
558040 参照

javascript - クライアントにJavaScriptファイルを更新させるにはどうすればよいですか?

現在、プライベートベータ版で作業しているため、まだかなり迅速な変更を行っていますが、明らかに使用量が増え始めているため、このプロセスは遅くなります。そうは言っても、私たちが直面している問題の1つは、新しいJavaScriptファイルで更新をプッシュした後も、クライアントブラウザーはキャッシュされたバージョンのファイルを使用し、更新が表示されないことです。明らかに、サポートコールではctrlF5、サーバーから最新のファイルを確実に取得するために更新を行うように通知することができますが、それ以前にこれを処理することをお勧めします。

現在の考えは、JavaScriptファイルの名前にバージョン番号を付けるだけで、変更が加えられたら、スクリプトのバージョンをインクリメントして、すべての参照を更新することです。これで確実に作業が完了しますが、リリースごとに参照を更新するのは面倒になる可能性があります。

私たちがこれに対処する最初の人ではないと確信しているので、私はそれをコミュニティに捨てると思いました。コードを更新するときに、クライアントがキャッシュを更新することをどのように保証していますか?上記の方法を使用している場合、変更を簡素化するプロセスを使用していますか?

0 投票する
3 に答える
7042 参照

c# - HttpCacheability.Private が ETag を抑制するのはなぜですか?

カスタム IHttpHandler を作成しているときに、HttpCachePolicy オブジェクトに関して予期しない動作に遭遇しました。

私のハンドラーは、エンティティ タグを計算して設定します (現在の応答オブジェクトに関連付けられた HttpCachePolicy で SetETag メソッドを使用します)。SetCacheability メソッドを使用してキャッシュ コントロールを public に設定すると、すべてが魅力的に機能し、サーバーは e-tag ヘッダーに沿って送信します。プライベートに設定すると、e-tag ヘッダーは抑制されます。

十分に調べていないだけかもしれませんが、HTTP/1.1 仕様には、この動作を正当化するものは何もありません。プロキシがデータを保存することを禁止しながら、ブラウザに E-Tag を送信したくないのはなぜですか?

戻ります

しかし、それを public に変更すると、元に戻ります

これまでのところ、ASP.NET 開発サーバーと IIS6 でこれを実行しましたが、結果は同じでした。また、を使用して ETag を明示的に設定することはできません

更新: IIS7 で実行している場合、ETag ヘッダーを手動で追加することができます。これは、ASP.NET と IIS7 パイプラインの間の緊密な統合が原因であると思われます。

明確化: 長い質問ですが、中心的な質問は次のとおりです。ASP.NET はなぜこのようなことを行うのでしょうか。

更新:基本的に正しいので、トニーの答えを受け入れるつもりです(トニーに行きましょう!)。HttpCacheability.Private を完全にエミュレートしたい場合は、キャッシュ可能性を ServerAndPrivate に設定できますが、呼び出しキャッシュもあります。SetOmitVaryStar (true) そうしないと、キャッシュによってVary: *ヘッダーが出力に追加されますが、それは望ましくありません。編集権限を取得したら、それを回答に編集します(または、このトニーが表示された場合は、回答を編集してその呼び出しを含めることができますか?)

0 投票する
3 に答える
4312 参照

asp.net - ASP.NET でのキャッシュ パターン

そこで、開発中のフレームワークのバグを修正しました。擬似擬似コードは次のようになります。

したがって、基本的には、キャッシュからオブジェクトを取得し、後で元のオブジェクトとキャッシュされたオブジェクトを比較して、変更された場合に備えてデータベースに保存する必要があるかどうかを確認しました。元のオブジェクトが参照であるため、問題が発生しました...そのため、 someValue を変更すると、参照されているキャッシュされたオブジェクトも変更され、データベースに保存されなくなります。キャッシュされたバージョンからオブジェクトを複製し、参照を切断して、新しいオブジェクトをキャッシュされたオブジェクトと比較できるようにすることで、これを修正しました。

私の質問は、これを行うためのより良い方法、推奨できるパターンはありますか? 以前にこれを行ったのは私だけではありません:)

0 投票する
6 に答える
822 参照

c# - 長期静的ページ キャッシング

私は、動的データをまったく持たないいくつかのクライアント サイトを維持しています。すべてが c# を使用した静的 asp.net です。
1 週間などの極端な期間、ページ全体をキャッシュすることに落とし穴はありますか?

Kibbee、サイトでいくつかのコントロール (広告ローテーター、一部の ajax 拡張機能) を使用しています。それらはおそらく完全に html で記述できますが、便宜上、他のすべてのサイトで使用しているものに固執しました。

0 投票する
4 に答える
11889 参照

caching - Memcacheコントロールパネル?

3つのWebサーバーのそれぞれでeAcceleratorを実行しており、3つすべてのmemcacheプールに移動することを検討しています。できれば、dbルックアップを約2/3削減します。

eAcceleratorの便利な点の1つは、Webベースの制御インターフェイス(control.php)です。これは、予期せずキャッシュをフラッシュしたり、キャッシュ内のスクリプトをすばやく監視したりする必要がある場合に非常に便利です。

私たちは探していましたが、memcacheに同じタイプの機能を提供するものは見つかりませんでした-そのようなものが存在するかどうか誰かが知っていますか?

明らかに、キャッシュなどのフラッシュはコンソールのmemcacheで十分簡単ですが、私たちの特定のセットアップは、フロントエンドを監視し、サーバー上で必ずしもシェルアクセスを持っていないキャッシュをフラッシュする必要がある人がいる可能性があることを意味します。

0 投票する
5 に答える
10646 参照

php - MySQL クエリのキャッシュ

キャッシュMySQL queriesする、PHPまたは失敗する簡単な方法はありますか? ページ全体をキャッシュすることはできますが、一部のデータは変更され、一部は変更されないため、機能しません。そうでない部分をキャッシュしたいと考えています。

0 投票する
6 に答える
18004 参照

.net - Linq to SQL でキャッシュをどのように実装しますか?

私たちは、DAL の作業で LINQ to SQL の使用を開始したばかりであり、アウト キャッシュ モデルの標準を実際に考え出すことはできませんでした。以前は、すべての DAL クラスが継承するキャッシュ マネージャー プロパティを実装する基本「DAL」クラスを使用していましたが、現在はそれがありません。誰かが LINQ to SQL の結果をキャッシュするための「標準的な」アプローチを思いついたのだろうか?

それが違いを生む場合、私たちはWeb環境(IIS)で作業しています。これが主観的な質問になる可能性があることは承知していますが、それでも情報は価値があると思います.

編集:明確にするために、個々の結果をキャッシュすることについて話しているのではなく、すべてのリンクメソッドが同じキャッシュアーキテクチャを使用するようにキャッシュを設定する方法など、アーキテクチャソリューションを求めています。

0 投票する
0 に答える
2210 参照

asp.net - .NET 2.0以降の分散キャッシング?

.NETで分散キャッシュを実装するための最良のアプローチは何ですか?

編集:私は内部および外部アプリケーションの一般的なキャッシングスキーマを探していました

0 投票する
10 に答える
39716 参照

c# - asp.netでキャッシュをロックする最良の方法は何ですか?

長時間実行されるプロセスなどの特定の状況では、ASP.NET キャッシュをロックして、そのリソースに対する別のユーザーによる後続の要求が、キャッシュにヒットする代わりに長いプロセスを再度実行することを回避することが重要であることを知っています。

ASP.NETでキャッシュロックを実装するC#での最良の方法は何ですか?

0 投票する
5 に答える
5105 参照

asp.net - マルチスレッド環境でのファイルアクセス戦略(Webアプリ)

Webサービスから取得され、Webアプリケーション内にローカルにキャッシュされたデータのXML表現であるファイルがあります。このデータは非常に静的ですが、変更される可能性があるという考え方です。そこで、ファイルにキャッシュするように設定し、モニターを貼り付けて、削除されているかどうかを確認しました。削除されると、ファイルはソースから更新されて再構築されます。

ただし、マルチスレッド環境では、ファイルの読み取り/書き込み中にデータにアクセスしようとしているため、明らかに問題が発生しています。

これは、ロックするオブジェクトを追加したため、混乱を招きます。これは、読み取り/書き込み中は常にロックされます。他のスレッドからのアクセスの試みは、ロックが解除されるまで「待機」するように指示されるというのが私の理解でしたか?

お知らせするために、私はマルチスレッド開発に本当に慣れていないので、これが私の側の混乱であることを完全に受け入れます:)

  • 私は何かが足りないのですか?
  • マルチスレッド環境での最良のファイルアクセス戦略は何ですか?

編集

申し訳ありませんが、これはASP.NET2.0を使用していると言っておくべきでした:)