MVC中使用jquery的瀏覽器緩衝問題

來源:互聯網
上載者:User

標籤:

jquery在瀏覽器ajax調用的時候,對緩衝提供了很好的支援,POST方式不能被緩衝,
使用POST的原因,明確了資料不能被緩衝,或者避免JSON攻擊(JSON返回資料的時候可以被入侵)

jquery全域對象裡的ajax提供了一些方式來支援緩衝和ConditionalGETs功能

  $.ajax({        ifModified:true,        cache:true,    });

ifModified選項定義的是在ajax調用的時候是否支援Conditional GETs功能,jquery會自動處理服務端返回的名為Last-Modified的header值,
它首先會請求伺服器使用ConditionalGETs功能重新驗證該條目,如果伺服器返回狀態代碼304,jquery會重新使用緩衝裡的該條目,
cache選項:如果為false,jquery會在請求的url後面附加一個時間戳記,以區分之前的url地址,這樣每次請求是新的,請求的資料肯定也是新的

但是如果伺服器明確定義了Response響應不能被緩衝的話,jquery也沒用,ajax裡面的cache選項被忽略,伺服器裡的禁用緩衝如下:

  // 禁用緩衝   Response.Cache.SetCacheability(HttpCacheability.NoCache);

 


伺服器和用戶端使用Conditional Gets功能驗證快取資料
用戶端將條目放在緩衝裡,在到期之後重新驗證,伺服器端必須實現Conditional Gets功能(使用ETags或者last modified的header

js代碼

  $.ajax({        ifModified:true,//這是關鍵        cache: true,        success: function (data,status,xhr) {        }    });

伺服器代碼:

 

  if (Request.Headers["If-Modified-Since"] != null  )            {                return new HttpStatusCodeResult((int)HttpStatusCode.NotModified);            }

 

MVC中使用jquery的瀏覽器緩衝問題

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.