中文字幕免费精品_亚洲视频自拍_亚洲综合国产激情另类一区_色综合咪咪久久

ASP.NET MVC中使用jQuery時的瀏覽器緩存問題詳解
來源:易賢網 閱讀:1065 次 日期:2016-08-05 15:31:18
溫馨提示:易賢網小編為您整理了“ASP.NET MVC中使用jQuery時的瀏覽器緩存問題詳解”,方便廣大網友查閱!

這篇文章主要介紹了ASP.NET MVC中使用jQuery時的瀏覽器緩存問題詳解,需要的朋友可以參考下。

介紹

盡管jQuery在瀏覽器ajax調用的時候對緩存提供了很好的支持,還是有必要了解一下如何高效地使用http協議。

首先要做的事情是在服務器端支持HTTP GET,定義不同的URL輸出不同的數據(MVC里對應的就是action)。如果要使用同一個地址獲取不同的數據,那就不對了,一個HTTP POST也不行因為POST不能被緩存。許多開發人員使用POST主要有2個原因:明確了數據不能被緩存,或者是避免JSON攻擊(JSON返回數組的時候可以被入侵)。

緩存解釋

jQuery全局對象里的ajax方法提供了一些options來支持緩存和Conditional GETs功能。

$.ajax({

  ifModified: [true|false],

  cache: [true|false],

});

ifModified選項定義的是在ajax調用的時候是否支持Conditional GETs功能。jQuery會自動幫我們處理服務器端返回的名為Last-Modified的header值,然后在隨后的請求里的header里發送If-Modified-Since。這需要我們的MVC Controller要實現Conditional GETs功能才能用。Conditional GETs功能在http緩存上下文中用于重新驗證緩存中過期的條目。如果jQuery認為一個條目已經過期了,它首先會請求服務器使用Conditional GETs功能重新驗證該條目,如果服務器返回狀態碼304(Not modified),jQuery會重新使用緩存里的該項目,這樣的話,我們可以節約很多流量去下載頁面內容。

cache選項基本上是覆蓋服務器端返回的http header里的所有關于緩存的設置,如果設置cache選項為false的話,jQuery會在請求的URL后面附件一個時間戳,以便區分之前的URL地址,這樣沒錯請求的內容都是最新的,也就是說瀏覽器每次接收的都是新地址,自然返回的都是最新數據。

讓我們來看幾個場景:

服務器端響應里設置No-Cache

服務器端為王,如果服務器端明確定義了response響應不能被緩存的話,jQuery也無能為力。ajax里的cache選項將被忽略。

JS代碼:

$('#nocache').click(function () {

  $.ajax({

    url: '/Home/NoCache',

    ifModified: false,

    cache: true,

    success: function (data, status, xhr) {

      $('#content').html(data.count);

    }

  });

});

C#代碼:

public ActionResult NoCache()

{

  // 禁用緩存

  Response.Cache.SetCacheability(HttpCacheability.NoCache);

  return Json(new { count = Count++ }, JsonRequestBehavior.AllowGet);

}

服務器端響應里設置過期時間

服務器端設置過期時間用于緩存數據,該條目在客戶端將依據過期時間被緩存。

JS代碼:

$('#expires').click(function () {

  $.ajax({

    url: '/Home/Expires',

    ifModified: false,

    cache: true,

    success: function (data, status, xhr) {

      $('#content').html(data.count);

    }

  });

});

C#代碼:

public ActionResult Expires()

{

  Response.Cache.SetExpires(DateTime.Now.AddSeconds(5));

  return Json(new { count = Count++ }, JsonRequestBehavior.AllowGet);

}

客戶端從來不緩存數據

客戶端決定每次都要最新的數據(不能使用緩存),也就是說ajaxi里的cache選項設置為false,不管服務器端如何定義,jQuery每次請求的URL地址都是唯一不同的,目的是每次都獲取最新的內容。

JS代碼:

$('#expires_nocache').click(function () {

  $.ajax({

    url: '/Home/Expires',

    ifModified: false,

    cache: false, // 這里是關鍵

    success: function (data, status, xhr) {

      $('#content').html(data.count);

    }

  });

});

C#代碼:

public ActionResult Expires()

{

  // 不管服務器端怎么設置都沒用

  Response.Cache.SetExpires(DateTime.Now.AddSeconds(5));

  return Json(new { count = Count++ }, JsonRequestBehavior.AllowGet);

}

服務器端和客戶端使用Conditional Gets功能驗證緩存數據

客戶端將條目放在緩存里,在過期之后重新驗證。服務器端必須實現Conditional GET功能(使用ETags或者last modified的header)。

JS代碼:

$('#expires_conditional').click(function () {

  $.ajax({

    url: '/Home/ExpiresWithConditional',

    ifModified: true, // 這里是關鍵

    cache: true,

    success: function (data, status, xhr) {

      $('#content').html(data.count);

    }

  });

});

C#代碼:

public ActionResult ExpiresWithConditional()

{

  if (Request.Headers["If-Modified-Since"] != null && Count % 2 == 0)

  {

    return new HttpStatusCodeResult((int)HttpStatusCode.NotModified);

  }

  Response.Cache.SetExpires(DateTime.Now.AddSeconds(5));

  Response.Cache.SetLastModified(DateTime.Now);

  return Json(new { count = Count++ }, JsonRequestBehavior.AllowGet);

}

上述MVC action中的代碼只是一個例子(非真實代碼),在真實的實現中,服務器端應該能夠知道數據自從上次響應以后是否被修改過。

總結:

詳細通過這4個場景,大家應該了解了ajax請求的緩存技術了吧,我就不做總結了。

以上這篇ASP.NET MVC中使用jQuery時的瀏覽器緩存問題詳解就是小編分享給大家的全部內容了,希望能給大家一個參考

更多信息請查看網絡編程
由于各方面情況的不斷調整與變化,易賢網提供的所有考試信息和咨詢回復僅供參考,敬請考生以權威部門公布的正式信息和咨詢為準!
關于我們 | 聯系我們 | 人才招聘 | 網站聲明 | 網站幫助 | 非正式的簡要咨詢 | 簡要咨詢須知 | 新媒體/短視頻平臺 | 手機站點

版權所有:易賢網

中文字幕免费精品_亚洲视频自拍_亚洲综合国产激情另类一区_色综合咪咪久久
麻豆精品视频在线观看免费| 婷婷激情综合网| 综合激情成人伊人| youjizz久久| 中文字幕在线不卡| 91美女在线看| 麻豆91在线观看| 欧美国产日韩一二三区| 91免费在线视频观看| 亚洲一卡二卡三卡四卡| 7777精品伊人久久久大香线蕉经典版下载 | 亚洲欧美电影一区二区| 欧美性大战xxxxx久久久| 日韩成人午夜精品| 亚洲色图欧洲色图| 欧美不卡一区二区三区四区| 91网站最新地址| 蜜桃视频一区二区三区在线观看| 国产日韩av一区二区| 欧美在线影院一区二区| 韩国欧美国产一区| 一区二区三区中文字幕精品精品 | 欧美xxxxx牲另类人与| av亚洲精华国产精华| 日本亚洲最大的色成网站www| 国产精品色哟哟| 欧美成人乱码一区二区三区| 欧美在线综合视频| 不卡视频一二三四| 国产一区二区电影| 日韩av中文在线观看| 亚洲欧美在线aaa| 国产午夜精品久久| 精品日韩在线观看| 日韩免费视频一区二区| 欧美日韩和欧美的一区二区| a美女胸又www黄视频久久| 久久精品国产久精国产爱| 亚洲综合av网| 一区二区国产视频| 亚洲乱码中文字幕| 最新国产精品久久精品| 久久九九久久九九| 欧美大片一区二区| 在线观看91av| 欧美一区二区三区性视频| 欧洲人成人精品| 在线一区二区观看| 欧美三级电影网站| 制服丝袜一区二区三区| 欧美一级免费观看| 精品嫩草影院久久| 久久久久久97三级| 国产精品久久久久一区二区三区 | 国产成人亚洲综合色影视| 久久成人免费日本黄色| 精品一区二区在线免费观看| 精品一区二区三区视频| 国产传媒欧美日韩成人| 丁香激情综合五月| 9i在线看片成人免费| 91年精品国产| 91麻豆精品国产91| 精品成人一区二区| 国产精品久久久久7777按摩| 一区二区欧美视频| 日韩精品久久久久久| 久久99久久精品| 99在线精品免费| 91精品欧美综合在线观看最新| 日韩免费性生活视频播放| 国产欧美综合在线| 亚洲美女淫视频| 日韩高清不卡一区二区三区| 国产一区二区三区黄视频 | 91麻豆精品91久久久久同性| 日韩你懂的电影在线观看| 亚洲精品一区二区三区影院| 中文字幕亚洲在| 午夜av区久久| 国产成人综合精品三级| 色噜噜狠狠色综合中国| 日韩女优制服丝袜电影| 国产精品不卡视频| 日本免费新一区视频| 国产91清纯白嫩初高中在线观看| 91国偷自产一区二区开放时间| 欧美一区二区成人| 亚洲人成影院在线观看| 蜜臀精品久久久久久蜜臀| 国产成人精品网址| 欧美日韩亚洲丝袜制服| 久久久www成人免费毛片麻豆| 一区二区三区色| 国产精品小仙女| 欧美日韩专区在线| 中文av字幕一区| 麻豆高清免费国产一区| 色婷婷综合久久久| 国产精品沙发午睡系列990531| 日韩国产欧美在线播放| 91在线观看污| 国产亚洲欧美在线| 精品影院一区二区久久久| 欧美理论片在线| 亚洲午夜久久久久久久久电影院 | 成人小视频免费在线观看| 欧美日韩成人综合天天影院| 国产精品成人午夜| 国产精品1区2区3区在线观看| 欧美精品在线一区二区三区| 亚洲女厕所小便bbb| 成人午夜又粗又硬又大| 久久综合久久综合亚洲| 免费在线观看不卡| 宅男在线国产精品| 午夜电影一区二区三区| 欧美日韩一级视频| 一区二区三区精品久久久| a亚洲天堂av| 亚洲欧美日韩系列| 97精品视频在线观看自产线路二| 久久久91精品国产一区二区三区| 日韩精彩视频在线观看| 91麻豆精品国产91久久久久久久久| 性欧美大战久久久久久久久| 欧美午夜精品一区二区三区| 亚洲乱码一区二区三区在线观看| 成人性色生活片| 亚洲欧美日韩系列| 欧美中文字幕久久| 日韩高清欧美激情| 日韩欧美亚洲另类制服综合在线| 蜜臀精品久久久久久蜜臀| 欧美tk—视频vk| 国产**成人网毛片九色 | 色婷婷综合久久久久中文一区二区 | 亚洲人精品午夜| 在线观看免费成人| 亚洲午夜免费电影| 欧美大片免费久久精品三p| 老鸭窝一区二区久久精品| 日韩免费一区二区| 国产成人高清视频| 成人欧美一区二区三区白人| 91高清视频免费看| 日韩电影一二三区| 久久九九国产精品| 色婷婷一区二区三区四区| 视频一区视频二区中文| 日韩美女视频在线| 国产99久久久精品| 亚洲美女淫视频| 欧美成人精品福利| 精品毛片乱码1区2区3区| 国产美女在线精品| 亚洲精品国产无套在线观| 欧美美女bb生活片| 国产a视频精品免费观看| 一区二区三区精品视频| 精品噜噜噜噜久久久久久久久试看 | 欧美成va人片在线观看| 成人黄色在线网站| 亚洲福利视频导航| 国产亚洲人成网站| 欧美猛男超大videosgay| 国产精品中文欧美| 亚洲午夜精品17c| 久久久久久99久久久精品网站| 91久久久免费一区二区| 国内精品伊人久久久久av一坑| 国产精品久久久久久亚洲毛片| 欧美视频在线播放| 国产成人在线视频播放| 天堂在线亚洲视频| 国产精品视频一二三区 | 成人欧美一区二区三区视频网页| 欧美一级理论性理论a| 色吧成人激情小说| 2022国产精品视频| 精品视频一区三区九区| 国产精品系列在线播放| 午夜精品久久久久久| 中文字幕一区二区三区在线播放| 日韩精品一区二区三区视频播放 | 欧美一区二区女人| 91色porny蝌蚪| 国产福利一区在线| 蜜桃一区二区三区四区| 午夜精品久久久久影视| 亚洲欧美日韩在线| 日本一区二区综合亚洲| 精品乱人伦小说| 日韩一区二区三| 日韩欧美国产综合一区| 欧美一级日韩不卡播放免费| 6080国产精品一区二区| 欧美色倩网站大全免费| 欧美主播一区二区三区| 欧美三级日本三级少妇99|