2011-05-12 9 views
2

私はIIS7上で動作する動的Webアプリケーションを開発していますが、IE9を除くすべての主要なブラウザで正常に動作します。実質的にすべてをキャッシュすること、ようで、それは多くの場合、変更内容は IE9キャッシュ動的ページ

  • ユーザーが許可コンテンツを訪問変わらない
    • のように、非常に多くの問題につながる、それからサインアウトし、確保に戻るしようとしますコンテンツをキャッシュから取得します。

    私はまた

    <META HTTP-EQUIV="Pragma" CONTENT="no-cache"> 
    <META HTTP-EQUIV="Expires" CONTENT="-1"> 
    

    を試してみてください

  • 答えて

    1

    あなたはAJAXを多用していますか?各AJAXリクエストが一意であることを確認してください。さもなければ、IE9はリクエストレスポンスのキャッシュバージョンを提供します。例えば

    、あなたのAJAXリクエストURLが通常のように見える場合:代わりに http://www.mysite.com/ajax.php?species=dog&name=fido

    、IEだけで、キャッシュされた応答を使用しないように、各要求にユニークな値を追加します。 Javascriptでこれを行う最も簡単な方法は、リクエストを行うたびに増加する変数です。

    var request_id = 0; 
    
    var request_url = "http://www.mysite.com/ajax.php?species=dog&name=fido&request_id="+request_id; 
    request_id++; 
    
    +1

    これはPROBある、と彼らはAJAXのためのjQueryを使用している場合、これは良いグローバルなソリューションです。http://www.peteonsoftware.com/index.php/2010/08/20/the-importance- of-jquery-ajaxsetup-cache/ –

    +0

    これはJqueryを使用する場合に便利ですが、誰もが(私は知っているわけではない)。 –

    +0

    これは役に立ちました:http://stackoverflow.com/questions/367786/prevent-caching-of-ajax-call – BeaverProj

    0

    ...

    <meta http-equiv="Expires" CONTENT="0"> 
    <meta http-equiv="Cache-Control" CONTENT="no-cache"> 
    <meta http-equiv="Pragma" CONTENT="no-cache"> 
    

    これまでのところ、運でキャッシュを無効にすることを試みた、必読:http://support.microsoft.com/kb/234067

    3

    私はこれをMVC開発ですぐに見つけました。

    すべてのAJAXリクエストのサーバーサイドのキャッシュを無効にしたかったのです。

    これを行うには、次のグローバルフィルタを登録しました。

    public class AjaxCacheControlAttribute: ActionFilterAttribute 
    { 
        public override void OnResultExecuted(ResultExecutedContext filterContext) 
        { 
         if (filterContext.RequestContext.HttpContext.Request.IsAjaxRequest()) 
         { 
          filterContext.HttpContext.Response.Cache.SetExpires(DateTime.UtcNow.AddDays(-1)); 
          filterContext.HttpContext.Response.Cache.SetValidUntilExpires(false); 
          filterContext.HttpContext.Response.Cache.SetCacheability(HttpCacheability.NoCache); 
          filterContext.HttpContext.Response.Cache.SetNoStore(); 
         } 
        } 
    } 
    
    関連する問題