2011-07-08 9 views
0

私はSOについて読んだ技術に基づいて、HttpHandlerを使用して、オンザフライで一部のCSS(単純な色のみ)を変更しています。動的CSS - キャッシングの問題?

私は、ユーザーに必要な色を指定するオプションを提供しているページですべてうまく動作します。理想的には、ユーザーが新しい色を保存し、ページが更新されるとすぐに、新しい色を表示することができます。しかし、ブラウザのリロードやF5キーを明示的に押したときにのみ表示されます。

私のスタイルシートの役立つキャッシングは、どこかの場所(IISまたはブラウザ)で実行されていることに感謝します。この特定のページイベントでは、1000回で999回が必要です。 HttpHandlerを起動させます。

誰でもこの方法と私ができることを理解していますか?

物事は私が試してみました:

Response.Clear(); 
    Response.Cache.SetCacheability(HttpCacheability.NoCache); 
    Response.Expires = -1; 
    Response.Cache.SetExpires(DateTime.Now.AddDays(-1)); 

私もスタイルシートのリンクをクエリ文字列本当に簡単オプションではありません追加するASP.NETのテーマを使用していますので。

誰でもいいですか?

+0

ユーザーの設定を保存するコントロールは、昔ながらのポスト権を作りますか? –

+0

私はASP.netの人ではありませんが、スタイルシートの名前を変更する方法はありますか?これにより、プロキシレベルとブラウザレベルでのキャッシュが停止されます。 – Eddie

答えて

0

これは、自分のサイトでデプロイ後などに変更があった後に資産をリロードする手法で解決できます。

をCSS URLの末尾に追加します。valueは、バージョンまたはブラウザがまだ見ていない独自の値に対応しています。私の場合は、ファイルの修正時間を使用していますが、ほとんどのページロードでCSSが動的なので、独自の値を生成することをお勧めします。

URLは常に異なるため、ブラウザは常にリロードしてキャッシュに入れません。

+0

"ASP.NETテーマを使用してクエリー文字列を追加しているため、スタイルシートリンクは単純なオプションではありません。" – Eddie

+0

ああ、そうだ。私はASP.NETのテーマに精通していません。ただし、サーバーとクライアントのクロックが同期していることを確認できますか?過去に有効期限を1日に設定していて、クライアントの時計が間違っていると、動作しない可能性があります。 – kcbanner

+0

質問として、私はスタイルシートのクエリ文字列を変更する必要がないソリューションを探しています... – bigtv

関連する問題