最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

淺析IE瀏覽器關(guān)于ajax的緩存機(jī)制

 更新時(shí)間:2018年08月22日 09:30:36   作者:張少凱  
這篇文章主要介紹了IE瀏覽器關(guān)于ajax的緩存機(jī)制,文中給大家提到了Ajax解決瀏覽器的緩存問(wèn)題,解決方法有很多種,需要的朋友可以參考下

IE瀏覽器對(duì)于同一個(gè)URL只返回相同結(jié)果。因?yàn)?,在默認(rèn)情況下,IE會(huì)緩存ajax的請(qǐng)求結(jié)果。對(duì)于同一個(gè)URL地址,在緩存過(guò)期之前,只有第一次請(qǐng)求會(huì)真正發(fā)送到服務(wù)端。大多數(shù)情況下,我們使用ajax是希望實(shí)現(xiàn)局部刷新的,所以這就牽扯到一個(gè)改進(jìn)的問(wèn)題。

  如果想每次都獲取到最新數(shù)據(jù),我們只需保證每次傳入的URL不一樣。最簡(jiǎn)單的方法就是通過(guò)給url拼接參數(shù)。利用math函數(shù)的random()方法生成隨機(jī)數(shù)。

  比如訪問(wèn)百度www.baidu.com,我們就可以把地址寫(xiě)成www.baidu.com?t=Math.random();或者?t=new Date().getTime();

  ********************************分割線**********************************

  說(shuō)到這里,不妨復(fù)習(xí)一下ajax的基本用法。

*Ajax創(chuàng)建對(duì)象:   

 var xmlhttp;
 if (window.XMLHttpRequest){
  //IE7+, Firefox, Chrome, Opera, Safari
    xmlhttp = new XMLHttpRequest();
  } else{
  //IE6, IE5
    xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
  }  
           

*Ajax請(qǐng)求:

//GET請(qǐng)求:
xmlhttp.open("GET","test1.txt",true);
xmlhttp.send();
//POST請(qǐng)求:
xmlhttp.open("POST","demo_post.asp",true);
xmlhttp.send();

GET 還是 POST?

與 POST 相比,GET 更簡(jiǎn)單也更快,并且在大部分情況下都能用。

然而,在以下情況中,請(qǐng)使用 POST 請(qǐng)求:

無(wú)法使用緩存文件(更新服務(wù)器上的文件或數(shù)據(jù)庫(kù))
向服務(wù)器發(fā)送大量數(shù)據(jù)(POST 沒(méi)有數(shù)據(jù)量限制)
發(fā)送包含未知字符的用戶輸入時(shí),POST 比 GET 更穩(wěn)定也更可靠

*Ajax響應(yīng):

要獲得服務(wù)器的響應(yīng),需要使用XMLHttpRequest 對(duì)象的 responseText 或 responseXML 屬性。

ResponseText:獲得字符串形式的響應(yīng)數(shù)據(jù)。

document.getElementById("myDiv").innerHTML=xmlhttp.responseText;

ResponseXML:獲得XML形式的響應(yīng)數(shù)據(jù)。

如果來(lái)自服務(wù)器的響應(yīng)是 XML,而且需要作為 XML 對(duì)象進(jìn)行解析。

*Ajax - onreadystatechange : 

當(dāng)請(qǐng)求被發(fā)送到服務(wù)器時(shí),我們需要執(zhí)行一些基于響應(yīng)的任務(wù)。

每當(dāng) readyState 改變時(shí),就會(huì)觸發(fā) onreadystatechange 事件。

在 onreadystatechange 事件中,我們規(guī)定當(dāng)服務(wù)器響應(yīng)已做好被處理的準(zhǔn)備時(shí)所執(zhí)行的任務(wù)。

當(dāng) readyState 等于 4 且狀態(tài)為 200 時(shí),表示響應(yīng)已就緒:

xmlhttp.onreadystatechange=function()
 {
 if (xmlhttp.readyState==4 && xmlhttp.status==200)
  {
  document.getElementById("myDiv").innerHTML=xmlhttp.responseText;
  }
 }

補(bǔ)充:下面看下淺談Ajax解決瀏覽器的緩存問(wèn)題

Ajax能提高頁(yè)面載入速度的主要原因是通過(guò)Ajax減少了重復(fù)數(shù)據(jù)的載入,也即在載入數(shù)據(jù)的同時(shí)將數(shù)據(jù)緩存到內(nèi)存中,一旦數(shù)據(jù)被加載,只要沒(méi)有刷新頁(yè)面,這些數(shù)據(jù)就會(huì)一直被緩存在內(nèi)存中,當(dāng)提交的URL與歷史的URL一致時(shí),就不需要提交給服務(wù)器,也即不需要從服務(wù)器獲取數(shù)據(jù),雖然降低了服務(wù)器的負(fù)載,提高了用戶體驗(yàn),但不能獲取最新的數(shù)據(jù)。為了保證讀取的信息都是最新的,需要禁止其緩存功能。

解決方案有如下幾種:

① 在Ajax發(fā)送請(qǐng)求前加上anyAjaxObj.setRequestHeader("If-Modified-Since", "0")。

② 在Ajax發(fā)送請(qǐng)求前加上anyAjaxObj.setRequestHeader("Cache-Control", "no-cache")。

③ 在URL后加上一個(gè)隨機(jī)數(shù):"fresh=" + Math.random();。

④ 在URL后加上時(shí)間搓:"nowtime=" + new Date().getTime();。

⑤ 如果是使用jQuery,則用$.ajaxSetup({cache:false})。這樣頁(yè)面的所有Ajax都會(huì)執(zhí)行該語(yǔ)句而不需要保存緩存記錄。

總結(jié)

以上所述是小編給大家介紹的IE瀏覽器關(guān)于ajax的緩存機(jī)制,希望對(duì)大家有所幫助,如果大家有任何疑問(wèn)請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)腳本之家網(wǎng)站的支持!

相關(guān)文章

  • jQuery Ajax的readyState和status的區(qū)別和使用詳解

    jQuery Ajax的readyState和status的區(qū)別和使用詳解

    在前幾篇分析了jquery的ajax異步和同步,以及異常的一些處理,感覺(jué)還沒(méi)有把a(bǔ)jax的readyState和status說(shuō)清楚.今天就來(lái)說(shuō)說(shuō)ajax狀態(tài)的那點(diǎn)事,非常不錯(cuò),對(duì)ajax readystate和status區(qū)別和使用感興趣的朋友一起學(xué)習(xí)吧
    2017-03-03
  • 通過(guò)Ajax兩種方式講解Struts2接收數(shù)組表單的方法

    通過(guò)Ajax兩種方式講解Struts2接收數(shù)組表單的方法

    使用struts2表單傳值,可以傳一個(gè)或者是作為一個(gè)對(duì)象的各個(gè)屬性傳,都非常靈活便捷。但是如果我們需要傳一個(gè)數(shù)組并希望struts正確接收,該怎么處理呢?接下來(lái),通過(guò)本文給大家介紹通過(guò)Ajax兩種方式講解Struts2接收數(shù)組表單的方法,需要的朋友可以參考下
    2015-10-10
  • laypage前端分頁(yè)插件實(shí)現(xiàn)ajax異步分頁(yè)

    laypage前端分頁(yè)插件實(shí)現(xiàn)ajax異步分頁(yè)

    layPage是一款多功能的js分頁(yè)組件,即適用于異步分頁(yè),又可用于傳統(tǒng)的整頁(yè)刷新跳頁(yè),還支持信息流加載,并且可無(wú)縫遷移至Node.js平臺(tái),這篇文章主要介紹了laypage前端分頁(yè)插件,實(shí)現(xiàn)ajax異步分頁(yè),需要的朋友可以參考下
    2016-05-05
  • rails制作rss feed代碼

    rails制作rss feed代碼

    在網(wǎng)上Google了很多次,能找到用rails制作rss,但是總是找不到完整的。今天把完整的過(guò)程抄錄在這里
    2008-09-09
  • AJAX的阻塞及跨域名解析

    AJAX的阻塞及跨域名解析

    AJAX的阻塞及跨域名解析...
    2007-07-07
  • AJAX跳轉(zhuǎn)路徑代碼

    AJAX跳轉(zhuǎn)路徑代碼

    這篇文章主要介紹了AJAX跳轉(zhuǎn)路徑的實(shí)現(xiàn)代碼,需要的朋友可以參考下
    2014-02-02
  • Ajax刪除數(shù)據(jù)與查看數(shù)據(jù)操作

    Ajax刪除數(shù)據(jù)與查看數(shù)據(jù)操作

    這篇文章主要介紹了Ajax刪除數(shù)據(jù)與查看數(shù)據(jù)操作,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友可以參考下
    2017-03-03
  • AJAX的跨域問(wèn)題解決方案

    AJAX的跨域問(wèn)題解決方案

    跨域簡(jiǎn)單的說(shuō),就是從一個(gè)域名的網(wǎng)頁(yè)去訪問(wèn)另一個(gè)域名網(wǎng)頁(yè)的資源,下面這篇文章主要給大家介紹了關(guān)于AJAX的跨域問(wèn)題解決的相關(guān)資料,文中通過(guò)實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2022-12-12
  • 看圖理解 普通交互方式和Ajax交互方式區(qū)別

    看圖理解 普通交互方式和Ajax交互方式區(qū)別

    看圖理解 普通交互方式和Ajax交互方式區(qū)別,需要的朋友可以參考下。
    2011-11-11
  • 編碼為GB2312網(wǎng)站讓AJAX接收的數(shù)據(jù)顯示支持中文

    編碼為GB2312網(wǎng)站讓AJAX接收的數(shù)據(jù)顯示支持中文

    GB2312 網(wǎng)站AJAX接收的數(shù)據(jù)顯示支持中文
    2010-01-01

最新評(píng)論

连城县| 连山| 大渡口区| 阳朔县| 治县。| 桃园县| 钦州市| 平原县| 丹寨县| 佛山市| 读书| 丽水市| 枣强县| 台东市| 昌江| 盐亭县| 徐闻县| 北安市| 拉萨市| 岢岚县| 洛扎县| 金山区| 都匀市| 望奎县| 米林县| 庐江县| 德格县| 丰城市| 南华县| 东平县| 永春县| 瑞丽市| 隆林| 德州市| 长宁县| 玉屏| 东兴市| 五家渠市| 普格县| 民勤县| 荔波县|