为了支持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$又让偶失望了。