好湿?好紧?好多水好爽自慰,久久久噜久噜久久综合,成人做爰A片免费看黄冈,机机对机机30分钟无遮挡

主頁 > 知識庫 > 淺談Ajax請求與瀏覽器緩存

淺談Ajax請求與瀏覽器緩存

熱門標簽:地圖標注項目怎么樣 騰訊地圖標注位置能用多久 云呼外撥網絡電話系統 超級大富翁地圖標注 越南河內地圖標注 硅語電話機器人公司 機器人電銷騙局揭秘 ai機器人電銷資源 個人怎樣在百度地圖標注地名

在現代Web應用程序中,前端代碼充斥著大量的Ajax請求,如果對于Ajax請求可以使用瀏覽器緩存,那么可以顯著地減少網絡請求,提高程序響應速度。

1. Ajax Request

使用jQuery框架可以很方便的進行Ajax請求,示例代碼如下:

$.ajax({
  url : 'url',
  dataType : "xml",
  cache: true,
  success : function(xml, status){  
      }
});

非常簡單,注意其中的第4行代碼:cache:true,顯式的要求如果當前請求有緩存的話,直接使用緩存。如果該屬性設置為 false,則每次都會向服務器請求,Jquery的Comments如下:

If set to false, it will force requested pages not to be cached by the browser. Setting cache to false also appends a query string parameter, "_=[TIMESTAMP]", to the URL.

前端的工作也就這么多了,這樣的話Ajax請求就可以利用瀏覽器緩存了嗎?

繼續看。

2. Http 協議

Http協議的header部分定義了關于客戶端是否應該做Cache,以及如何做Cache。具體參見Http Header Field Definitions 的 14.9 Cache-Control 和 14.21 Expires。這里簡單說一下:

Cache-Control

Cache-control用于控制HTTP緩存(在HTTP/1.0中可能部分沒實現,僅僅實現了Pragma: no-cache)

數據包中的格式:

Cache-Control: cache-directive

cache-directive可以為以下:

request時用到:

| "no-cache"
| "no-store"
| "max-age" "=" delta-seconds
| "max-stale" [ "=" delta-seconds ]
| "min-fresh" "=" delta-seconds
| "no-transform"
| "only-if-cached"
| "cache-extension"

response時用到:

| "public"
| "private" [ "=" "> field-name "> ]
| "no-cache" [ "=" "> field-name "> ]
| "no-store"
| "no-transform"
| "must-revalidate"
| "proxy-revalidate"
| "max-age" "=" delta-seconds
| "s-maxage" "=" delta-seconds
| "cache-extension"

說明:

-Public  指示響應可被任何緩存區緩存。

-Private  指示對于單個用戶的整個或部分響應消息,不能被共享緩存處理。這允許服務器僅僅描述當用戶的部分響應消息,此響應消息對于其他用戶的請求無效。

-no-cache  指示請求或響應消息不能緩存(HTTP/1.0用Pragma的no-cache替換)

-no-store  用于防止重要的信息被無意的發布。在請求消息中發送將使得請求和響應消息都不使用緩存。

-max-age  指示客戶端可以接收生存期不大于指定時間(以秒為單位)的響應。

-min-fresh  指示客戶端可以接收響應時間小于當前時間加上指定時間的響應。

-max-stale  指示客戶端可以接收超出超時期間的響應消息。如果指定max-stale消息的值,那么客戶端可以

接收超出超時期指定值之內的響應消息。

Expires

Expires 表示Cache的有效時間,允許客戶端在這個時間之前不去發請求,等同max-age的效果。但是如果同時存在,則被Cache-Control的max-age覆蓋。
格式:Expires = "Expires" ":" HTTP-date
示例:Expires: Thu, 01 Dec 1994 16:00:00 GMT

Last-Modified

Last-Modified用GMT格式表明了文檔的最后修改時間,客戶端第二次請求此URL時,會在頭部加入一個屬性,詢問該時間之后文件是否有被修改過。如果服務器端的文件沒有被修改過,則返回狀態是304,內容為空,這樣就節省了傳輸數據量。

 

3. 我的問題

這幾天在做Web前端的時候,發現客戶端的每次Ajax都會從服務器端請求數據,而這些數據的即時性沒有那么高,沒必要每次都請求。

在顯式的給Ajax加上cache為true后,發現問題依舊。于是懷疑是服務端的問題,服務端使用 jersey 搭建了基于Restful的服務,代碼片段如下:

@GET
@Produces("application/xml")
public Response getProducts() {
     Response.ResponseBuilder response = Response.ok(data);
     return response.build();
}

添加Cache控制后,進行測試,一切OK。

最后的代碼如下:

@GET
@Produces("application/xml")
public Response getProducts() {
     Response.ResponseBuilder response = Response.ok(data);
     // Expires 3 seconds from now..this would be ideally based
     // of some pre-determined non-functional requirement.
     Date expirationDate = new Date(System.currentTimeMillis() + 3000);
     response.expires(expirationDate);
     return response.build();
}

以上只是示例代碼,還可以進行更精細的控制,例如使用CacheControl、Last-Modified等等。

以上這篇淺談Ajax請求與瀏覽器緩存就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持腳本之家。

您可能感興趣的文章:
  • 解析瀏覽器端的AJAX緩存機制
  • Ajax清除瀏覽器js、css、圖片緩存的方法
  • Ajax中瀏覽器的緩存問題解決方法
  • Js 代碼中,ajax請求地址后加隨機數防止瀏覽器緩存的原因

標簽:內蒙古 遼源 鄭州 林芝 海南 洛陽 邢臺 舟山

巨人網絡通訊聲明:本文標題《淺談Ajax請求與瀏覽器緩存》,本文關鍵詞  淺談,Ajax,請求,與,瀏覽器,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《淺談Ajax請求與瀏覽器緩存》相關的同類信息!
  • 本頁收集關于淺談Ajax請求與瀏覽器緩存的相關信息資訊供網民參考!
  • 推薦文章
    主站蜘蛛池模板: 欧美精品无码久久久亚洲都市言情| 老头老太bbwbbwbbwbbw| 韩国理伦片中文字幕理论漫画 | 国产乱码一区二区三区四区| 色酷酷| gav久久| jzzijzzij亚洲日本少妇高潮| 寿宁县| 朝鲜一级乱理伦片在线观看| 股间白浊失禁跪趴老师| 欧洲尺码日本尺码专线不卡顿| 美女扒开腿秘?让男人打进球作文| 女爱男欢| 欧美精品亚洲精品日韩| 女奥特曼被?到爽被爆衣| 把女人弄舒服了她就乖乖听话了| 日韩成人一级| 黑人极品videoshd| www成人??色情美女尿口| 懂色Av噜噜一区二区三区AV| 久在草视频| **俄罗斯毛片免费| 日韩网站在线观看| 男女免费观看爽爽爽网站| 我被5个男人躁一夜不收我怎么办| 人驴交| 美女脱得一光二净大胸图片| 外出暴露调教小黄文h| 国产精品?羞羞答答在线| 亚洲偷窥XXXx盗摄国产| 老师xxxxbbbb| ai人脸替换明星造梦网站免费| 好爽好深好猛好紧的免费视频| 国产91??| 日本老女人| S货叫大声点C懒烂你的SBXS| 国产中文字幕亚洲| 日本黄动漫在线观看| yy6080成人午夜理论电影| 黄色三级伦理片| 日韩伦乱|