xslt-1.0 - IE - XSL 文件没有从浏览器缓存中加载(总是点击服务器加载)
问题描述
在我们的应用程序中,我们有一些页面正在使用 activex 对象 Microsoft.XMLDOM 进行 xsl 转换。它是一个遗留应用程序,因此没有太大的更改空间。
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)。
如果我们打开 Temporary Internet Files,我们可以看到虽然 Expires 列中存在未来日期,但 Last Checked 总是针对每个请求进行更新。
任何帮助在这里,将不胜感激。
解决方案
在谷歌中搜索了很多之后,我们了解到 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>
推荐阅读
- julia - 你如何在 Julia 中进行任意精度计算?
- reactjs - tabIndex 专注于锚标签内的内部 React 组件
- opencv - 应用平滑过滤器(双边、高斯、vs.)和色彩空间
- autohotkey - 以空格作为分隔符解析数值,同时忽略数字分组(即 1 020 与 1020)
- sql - 检查任何列是否包含分组后提供的值
- big-o - 计数排序大 O
- spring-boot - SpringBoot 检索现有的原型 bean
- html - 填充网格&
带有 JSON 数据文件
- javascript - 在参考服务器时间的特定日期和时间重定向页面
- java - 不能用不同类型的参数继承