IE - XSL 文件没有从浏览器缓存中加载(总是命中服务器加载)

IE - XSL files not getting loaded from browser cache (always hitting the server to load)

在我们的应用程序中,我们有一些页面使用 activex 对象进行 xsl 转换 Microsoft.XMLDOM。它是一个遗留应用程序,因此没有太大的更改空间。

Example:
<script>
var doc = new ActiveXObject("Microsoft.XMLDOM");
doc.async = false;
doc.load("/<<Some Path/myXSL.xsl");
document.write(myXML.transformNode(doc));
</script>

我们的 HTTP 服务器正在向客户端发送正确的缓存控制、过期属性。 CSS、JS、图像文件等我们可以看到从浏览器缓存中获取(状态 304),但对于 XSL 文件,它总是访问服务器(状态 200)。

如果我们打开 Internet 临时文件,我们可以看到虽然过期列中存在未来日期,但上次检查总是针对每个请求进行更新。

如有任何帮助,将不胜感激。

在google中搜索了很多,了解到ActiveX Microsoft.XMLDOM在请求头中发送"pragma - nocache"(跳过浏览器缓存)。

为了解决这个问题,我们需要将 ForcedResync 属性 设置为 false(告诉 XML Dom 对象不要发送该 pragma)。

示例:

<script>
var doc = new ActiveXObject("Microsoft.XMLDOM");
doc.async = false;
doc.setProperty("ForcedResync", false); 
doc.load("/<<Some Path>>/myXSL.xsl");
document.write(myXML.transformNode(doc));
</script>