ajax產生了Cache,與javascript系統錯誤 -1072896748

 CACHE
如果使用xmlhttp控件,在發起http請求的時候IE會包辦cache策略,很多時候更新了數據卻無法獲得更新後的數據。一開始試圖用傳統方式在URL後面加隨機數來強制更新,但是IE仍然距不發出新的請求。
一個解決方法是在後臺寫expires: 0或者其他的禁止前臺cache的頭,但是這樣在數據沒有更新的時候又會帶來不必要的服務器壓力、響應延遲和帶寬浪費。
一個稍微好一點的解決方法是,前臺在提交數據以後,需要強制更新數據的時候
xmlhttp.setRequestHeader("If-Modified-Since","0");

系統錯誤: -1072896748。
用xmlhttp接收到數據的時候經常是用xmldom.loadXML(xmlhttp.responseXML.xml)來判斷返回的數據的正確性,但是如果後臺送過來不正確的xml的時候有時回觸發-1072896748系統錯誤。這是因爲xmlhttp.responseXML已經沒有解析到東西了,我們還試圖訪問它的xml屬性而觸發的。
解決的方法是在使用responseXML.xml 或者 responseText的時候要做try/catch:
try{var tmp = xmlhttp.responseXML.xml}catch(ex){err=true;}
有些人喜歡catch的時候判斷 exception.description=="系統錯誤: -1072896748。, 如果客戶端不是簡體中文版的系統的時候就判斷不到了。其實這個地方只要有異常,都必須走異常處理流程了,不用區分的那麼仔細。

 
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章