為了支持304response,測試了 MSXML2.XMLHTTP.5.0,MSXML2.XMLHTTP.4.0,MSXML2.XMLHTTP.3.0,MSXML2.XMLHTT,Microsoft.XMLHTTP,MSXML2.DOMDocument.5.0,MSXML2.DOMDocument.3.0,MSXML2.DOMDocument,Microsoft.XMLDOM 用get方式分別去拉取一個允許304response的xml資源。結果發現:
MSXML2.XMLHTTP.5.0 可以直接讀取到本機cache,不發出請求。但是沒有辦法根據本機的cache版本的last-modified時間去要求服務器驗證并返回304,只能依靠腳本來控制是否允許cache。
MSXML2.XMLHTTP.4.0,MSXML2.XMLHTTP.3.0,MSXML2.XMLHTT,Microsoft.XMLHTTP,MSXML2.DOMDocument.4.0,MSXML2.DOMDocument.3.0,MSXML2.DOMDocument,Microsoft.XMLDOM 這幾個家伙全部根據操作系統不同,要么不支持cache,要么不發送請求,直接返回cache的版本,無法要求服務器驗證并返回304。
惟一可以正確發送if-modified-since頭部的控件是:MSXML2.DOMDocument.5.0
MSXML2.XMLHTTP.6.0,,MSXML2.DOMDocument.6.0,MSXML3.DOMDocument等本機都不支持,無法測試。
每個版本的xmlhttp和xmldom都各有各的問題,唉,M$又讓偶失望了。