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

ajax調(diào)用中ie緩存問題解決方法

 更新時(shí)間:2015年12月01日 12:27:33   作者:Jeff Wong  
這篇文章主要介紹了ajax調(diào)用中ie緩存問題解決方法,較為詳細(xì)的分析了ajax調(diào)用中ie緩存機(jī)制的原理與具體解決方法,具有一定參考借鑒價(jià)值,需要的朋友可以參考下

本文實(shí)例分析了ajax調(diào)用中ie緩存問題解決方法。分享給大家供大家參考,具體如下:

ajax請求調(diào)用的過程中發(fā)現(xiàn)的問題:后臺(tái)請求是一個(gè)簡單的.aspx文件,而這個(gè)頁面又沒有考慮過緩存的影響,使用ajax調(diào)試的時(shí)候發(fā)現(xiàn)有時(shí)候根本不走后臺(tái)代碼直接返回結(jié)果了,所以估計(jì)是受到瀏覽器緩存的影響。網(wǎng)上搜了一下,果然是緩存的問題:“IE中如果XMLHttpRequest提交的URL與歷史一樣則使用緩存,根本不向服務(wù)器端提交。因此無法取到剛提交的數(shù)據(jù)或新的數(shù)據(jù)”。

解決方法大致有下面幾種:

1、只改進(jìn)服務(wù)器端

(1)后臺(tái)是簡單的.aspx文件,直接加上

復(fù)制代碼 代碼如下:
<%@ OutPutCache Location="None"%>
即可。

(2)但是如果后臺(tái)是.ashx文件通常在類里直接修改緩存設(shè)置。

復(fù)制代碼 代碼如下:
context.Response.Cache.SetCacheability(HttpCacheability.NoCache);

2、只改進(jìn)客戶端

(1)利用加隨機(jī)數(shù)或加時(shí)間戳改變請求地址

a、加隨機(jī)數(shù):

復(fù)制代碼 代碼如下:
var url='AjaxOperations.aspx?rdm='+Math.random()+'&action='+op;

b、加時(shí)間戳:
復(fù)制代碼 代碼如下:
var url='AjaxOperations.aspx?dtStamp='+new Date().getTime()+'&action='+op;

這一種解決方案,只需要加個(gè)時(shí)間或隨機(jī)數(shù)作為參數(shù),服務(wù)器端不需要任何改動(dòng)就可以達(dá)到目的。

(2)前臺(tái)異步調(diào)用設(shè)置XMLHttpRequest對象的屬性

在XMLHttpRequest發(fā)送請求之前加上

復(fù)制代碼 代碼如下:
XMLHttpRequest.setRequestHeader("If-Modified-Since","0")
個(gè)人認(rèn)為這個(gè)才是“正道”。因?yàn)槟悴荒苊鞔_哪些ajax請求是需要還是不需要緩存的(解決網(wǎng)站的性能瓶頸,利用有緩存的ajax居多),所以每次在發(fā)送請求的時(shí)候確認(rèn)一下是否要緩存,相對于2中的第(1)條顯然少寫了一個(gè)url參數(shù),而且服務(wù)器端(改進(jìn)方法1)也不需要改變設(shè)置,但是對于已經(jīng)封裝好的ajax庫,你可能已經(jīng)不能在外面直接使用XMLHttpRequest對象了,通常的設(shè)置語法可能是將("If-Modified-Since","0")作為參數(shù)傳遞:ajaxObj.sendPost(其他參數(shù)列表,...."If-Modified-Since","0"); (post方式)

或者 ajaxObj.sendGet(其他參數(shù)列表,...."If-Modified-Since","0"); (get方式)

希望本文所述對大家ajax程序設(shè)計(jì)有所幫助。

相關(guān)文章

最新評論

石景山区| 湖口县| 冷水江市| 景东| 卓资县| 桓台县| 云安县| 商南县| 镇巴县| 信阳市| 武汉市| 芦溪县| 连南| 乃东县| 珲春市| 玉田县| 凤凰县| 抚宁县| 广饶县| 道孚县| 堆龙德庆县| 略阳县| 巴里| 漯河市| 郁南县| 芦山县| 毕节市| 渭南市| 邢台市| 皋兰县| 宣汉县| 武陟县| 朝阳市| 乌拉特中旗| 通辽市| 邯郸县| 中江县| 乐亭县| 浏阳市| 饶平县| 宜黄县|