IE - XSL-файлы не загружаются из кэша браузера (всегда загружаются с сервера для загрузки) - PullRequest
0 голосов
/ 11 мая 2018

В нашем приложении есть несколько страниц, на которых преобразование xsl происходит с использованием объекта activex 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).

Если мы открываем временный ИнтернетФайлы, которые мы можем видеть, хотя в столбце Expires присутствует будущая дата, но Last Checked всегда обновляется для каждого запроса.

Любая помощь здесь, будет высоко ценится.

1 Ответ

0 голосов
/ 14 мая 2018

После поисков в Google мы поняли, что ActiveX Microsoft.XMLDOM отправляет «pragma-nocache» в заголовок запроса (чтобы пропустить кеш браузера).

Чтобы решить эту проблему, нам нужно установить для свойства ForcedResync значение false (указав объекту XML Dom не отправлять эту прагму).

Пример:

<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>
...