jsp中如何避免用戶端瀏覽器在重新整理時,使用緩衝的資料

來源:互聯網
上載者:User

在工作中,經常在jsp頁面中看到下面類似的一段代碼:

    response.setHeader("Cache-Control", "no-cache"); //HTTP 1.1    response.addHeader("Cache-Control", "no-store"); //Firefox    response.setHeader("Pragma", "no-cache"); //HTTP 1.0    response.setDateHeader("Expires", -1);    response.setDateHeader("max-age", 0);

那麼這段代碼的意思是什麼呢?作用又是什麼呢?且看下面的解釋:

代碼的前三行的功能都是一樣的,只是為了相容多瀏覽器而做的處理,都是用來阻止瀏覽器緩衝由jsp或者servlet動態產生的內容。下面是英文原文的解釋:

This is used to prevent the browser from caching your dynamic content generated by a JSP or Servlet.
You set this attribute in the HTTP header of the response object which would tell the browser not to cache this content. So everytime you request the page again, the browser would make a new request, instead of showing you a cached page.

使用伺服器端控制AJAX頁面緩衝:
response.setHeader( "Pragma", "no-cache" );
response.addHeader( "Cache-Control", "must-revalidate" );
response.addHeader( "Cache-Control", "no-cache" );
response.addHeader( "Cache-Control", "no-store" );
response.setDateHeader("Expires", 0);
單純的使用 xmlhttp.setRequestHeader("Cache-Control","no-cache")無效。

Cache-Control頭域
  Cache-Control指定請求和響應遵循的緩衝機制。在請求訊息或響應訊息中設定Cache-Control並不會修改另一個訊息處理過程中的緩衝處理過程。請求時的緩衝指令包括no-cache、no-store、max-age、max-stale、min-fresh、only-if-cached,響應訊息中的指令包括public、private、no-cache、no-store、no-transform、must-revalidate、proxy-revalidate、max-age。各個訊息中的指令含義如下:
  Public指示響應可被任何緩衝區緩衝。
  Private指示對於單個使用者的整個或部分響應訊息,不能被共用快取處理。這允許伺服器僅僅描述當使用者的部分響應訊息,此響應訊息對於其他使用者的請求無效。
  no-cache指示請求或響應訊息不能緩衝
  no-store用於防止重要的資訊被無意的發布。在請求訊息中發送將使得請求和響應訊息都不使用緩衝。
  max-age指示客戶機可以接收生存期不大於指定時間(以秒為單位)的響應。
  min-fresh指示客戶機可以接收回應時間小於目前時間加上指定時間的響應。
  max-stale指示客戶機可以接收超出逾時期間的響應訊息。如果指定max-stale訊息的值,那麼客戶機可以接收超出逾時期指定值之內的響應訊息。

response.setDateHeader("Expires", 0); 

expires是response的一個屬性 
它可以設定頁面在瀏覽器的緩衝裡儲存的時間 
超過設定的時間後就到期 
到期後再次瀏覽該頁面就需要重新請求伺服器發送頁面資料 
如果在規定的時間內再次訪問次頁面 
就不需從伺服器傳送 直接從緩衝中讀取

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.