亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 開發 > AJAX > 正文

ajax 緩存 問題 requestheader

2024-09-01 08:31:36
字體:
來源:轉載
供稿:網友
在web開發的時候經常需要用到ajax,但是有些問題往往會被忽略,如果提交后需要在服務端做一些后臺操作的話因為瀏覽器默認狀態下有緩存的原因,可能頁面上的信息還是正確的,但是后臺的邏輯代碼卻沒有真正的更新。

這樣是為了減少頻繁訪問服務器對其造成不必要的負擔,但是同時也帶來了一定特殊業務邏輯滿足不了的問題。
例如:
  需要通過前臺一個select下拉列表來作為ajax的觸發入口,同時將server返回的信息呈現在頁面,并且往session或者數據庫里面更新一些實際的東西的邏輯操作。
當第一次切換選項,也就是提交請求的時候一切都是正常的,但是如果切換相同選項因為瀏覽器的緩存原因,將不會走到server,實際得到的動態信息是從緩存中去取的。造成后臺的邏輯沒有被走到。代碼如下:
aspx相關代碼

復制代碼 代碼如下:


<asp:DropDownList runat="server">
<asp:ListItem Value="" Selected="True"></asp:ListItem>
<asp:ListItem Value="null">積立利率変動型終身保険</asp:ListItem>
<asp:ListItem Value="QIWL">  ・QIWL(H9)</asp:ListItem>
<asp:ListItem Value="KIWL">  ・KIWL(H11)</asp:ListItem>
<asp:ListItem Value="JIWL">  ・JIWL(H15)</asp:ListItem>
<asp:ListItem Value="null">積立利率変動型終身保険(市場金利連動型)</asp:ListItem>
<asp:ListItem Value="IIWL">  ・IIWL</asp:ListItem>
<asp:ListItem Value="HIWL">  ・HIWL</asp:ListItem>
<asp:ListItem Value="null">積立利率変動型終身保険(貯蓄重視型)</asp:ListItem>
<asp:ListItem Value="KIWLS">  ・KIWLS</asp:ListItem>
<asp:ListItem Value="null">ドル建積立利率変動型終身保険</asp:ListItem>
<asp:ListItem Value="ODIWL">  ・ODIWL</asp:ListItem>
<asp:ListItem Value="JDIWL">  ・JDIWL</asp:ListItem>
<asp:ListItem Value="HDIWL">  ・HDIWL</asp:ListItem>
<asp:ListItem Value="null"> 積立利率変動型養老保険(貯蓄重視型 米ドル建) </asp:ListItem>
<asp:ListItem Value="JDISE">  ・JDISE</asp:ListItem>
</asp:DropDownList>


aspx.cs代碼

復制代碼 代碼如下:


if (!IsPostBack)
{
//為doropdownlist添加客戶端事件
ddlProductList.Attributes.Add("onchange", "selectChange(this)");
}


Ajax.js代碼

復制代碼 代碼如下:


var request;
function selectChange(obj) {
createHttpRequest();
var url = "AjaxService.aspx?product=" + obj.value;
request.open("GET",url,true)
request.onreadystatechange = resetRate;
request.send();
return false;
}
function createHttpRequest () {
if (window.ActiveXObject) {
request = new ActiveXObject("Microsoft.XMLHTTP");
} else if (window.XMLHttpRequest) {
request = new XMLHttpRequest();
}
}
function resetRate() {
if (request.readyState == 4) {
if (request.responseText.substring(0,1) == "#") {
document.getElementById("systemErrorMsg").innerHTML = request.responseText.substring(1);
document.getElementById("rate").innerHTML = "";
} else {
document.getElementById("rate").innerHTML = request.responseText;
document.getElementById("systemErrorMsg").innerHTML = "";
}
}
}


請求頁面代碼

復制代碼 代碼如下:


protected void Page_Load(object sender, EventArgs e)
{
string productShortName = Request.QueryString["product"];
if (productShortName != null && productShortName != "null" )
{
string result = Utility.GetProductRate(packageName);
Session["rate"] = result;
Response.Write(result);
}
}


經過分析問題出在XmlHttpRequest這個對象上面,切換選項后,并不是每次走到請求頁面的邏輯中。查詢了相關資料解決方案如下:
request.setRequestHeader("If-Modified-Since","0");
簡單的說,Last-Modified 與If-Modified-Since 都是用于記錄頁面最后修改時間的 HTTP 頭信息,只是 Last-Modified 是由服務器往客戶端發送的 HTTP 頭,而 If-Modified-Since 則是由客戶端往服務器發送的頭,可 以看到,再次請求本地存在的 cache 頁面時,客戶端會通過 If-Modified-Since 頭將先前服務器端發過來的 Last-Modified 最后修改時間戳發送回去,這是為了讓服務器端進行驗證,通過這個時間戳判斷客戶端的頁面是否是最新的,如果不是最新的,則返回新的內容,如果是最新的,則 返回 304 告訴客戶端其本地 cache 的頁面是最新的,于是客戶端就可以直接從本地加載頁面了,這樣在網絡上傳輸的數據就會大大減少,同時也減輕了服務器的負擔。
另外還有另一個解決放案,不過還未經測試,理論上應該是可行的,就是在請求頁面設置一下response的header:
Response.AddHeader("Cache-control", "no-cache");
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
国产精品免费久久久久影院| 欧美精品www在线观看| 亚洲成av人影院在线观看| 97精品一区二区三区| 岛国精品视频在线播放| www.99久久热国产日韩欧美.com| 91欧美激情另类亚洲| 国产精品精品视频| 成人在线视频网| 成人av在线网址| 国产精品亚发布| 中国人与牲禽动交精品| 成人做爽爽免费视频| 91手机视频在线观看| 97在线观看免费| 欧美极品第一页| 最近2019中文字幕在线高清| 日韩色av导航| 8050国产精品久久久久久| 亚洲一区二区久久久久久| 欧美大片免费看| 日韩av在线看| 国产欧美一区二区三区在线看| 91系列在线播放| 精品国产一区二区三区四区在线观看| 亚洲性av网站| 成人免费看黄网站| 久久久伊人欧美| 亚洲国产毛片完整版| 大伊人狠狠躁夜夜躁av一区| 日韩亚洲欧美中文高清在线| 日韩美女免费视频| 久久久最新网址| 高清日韩电视剧大全免费播放在线观看| 97av在线视频免费播放| 欧美三级欧美成人高清www| 欧美精品videofree1080p| 国产精品免费视频久久久| 国产精品永久免费在线| 97精品免费视频| 97视频在线观看视频免费视频| 日韩三级成人av网| 国产99久久久欧美黑人| 亚洲香蕉在线观看| 亚洲欧美激情四射在线日| 日韩不卡中文字幕| 国产精品成人一区二区三区吃奶| 国产精品白丝av嫩草影院| 国产成人综合久久| 久久影视三级福利片| 久久影院免费观看| 久久精品国亚洲| 97成人精品区在线播放| 亚洲免费av网址| 国产91精品最新在线播放| 91麻豆国产语对白在线观看| 欧美视频免费在线观看| 68精品久久久久久欧美| 国产在线999| 中文字幕日韩av综合精品| 成人免费网视频| 国产精品视频不卡| 久久国产加勒比精品无码| 在线视频欧美性高潮| 91精品中文在线| 宅男66日本亚洲欧美视频| 国产精品爽爽爽爽爽爽在线观看| 国产精品777| 精品国产精品三级精品av网址| 国产视频综合在线| 精品国产31久久久久久| 亚洲激情免费观看| 欧美精品videosex极品1| 茄子视频成人在线| 色综合色综合久久综合频道88| 亚洲石原莉奈一区二区在线观看| 51午夜精品视频| 日本精品性网站在线观看| 97av视频在线| 欧美成年人视频| 亚洲一区二区福利| 欧美成人免费va影院高清| 久久中文字幕视频| 69久久夜色精品国产69乱青草| 久久久久久久久久久久久久久久久久av| 亚洲国产另类久久精品| 国产精品久久不能| 欧美黑人性猛交| 日本中文字幕久久看| 成人午夜在线视频一区| 国产成人免费av电影| 欧美精品在线播放| 成人动漫网站在线观看| 亚洲电影免费观看高清| 欧美精品在线视频观看| 欧美精品久久久久久久久久| 九九热最新视频//这里只有精品| 亚洲色图13p| 日韩精品中文字| 亚洲高清在线观看| 亚洲999一在线观看www| 亚洲人成亚洲人成在线观看| 97超碰蝌蚪网人人做人人爽| 国产成人鲁鲁免费视频a| 亚洲精品国产电影| 亚洲最新av在线| 欧美性理论片在线观看片免费| 91久久精品美女高潮| 日韩视频免费大全中文字幕| 国产精品久久久久影院日本| 欧美激情性做爰免费视频| 国产精品视频永久免费播放| 中文字幕欧美视频在线| 国产99久久精品一区二区永久免费| 亚洲欧洲高清在线| 91色在线视频| 亚洲色无码播放| 精品久久久久久久久国产字幕| 欧美性受xxxx黑人猛交| 日韩激情在线视频| 性欧美长视频免费观看不卡| 精品成人国产在线观看男人呻吟| 国语自产精品视频在免费| 亚洲网在线观看| 一区国产精品视频| 国产精品电影一区| 欧美高清理论片| 亚洲人成在线观看| 成人国产精品久久久| 影音先锋日韩有码| 国产亚洲精品久久久| 97精品国产91久久久久久| 日本精品在线视频| 亚洲人在线视频| 性欧美xxxx交| 国产小视频国产精品| 日韩美女视频在线观看| 日韩久久精品电影| 综合av色偷偷网| 欧美一二三视频| 亚洲女人天堂网| 国产精品影片在线观看| 成人免费高清完整版在线观看| 欧美高清理论片| 国产午夜精品一区理论片飘花| 国产一区二区三区视频免费| 欧美激情免费视频| 国产精品免费小视频| 国a精品视频大全| 亚洲精品国产精品乱码不99按摩| 亚洲男人天堂2019| 欧美尤物巨大精品爽| 久久久电影免费观看完整版| 国内自拍欧美激情| 亚洲人a成www在线影院| 国产不卡精品视男人的天堂| 欧美精品电影在线| 91热福利电影| 亚洲欧洲中文天堂| 国产91精品久久久久久| 精品中文视频在线| 国产日韩精品在线观看| 成人免费高清完整版在线观看| 91久久精品国产91久久性色|