After an Extensible Markup Language (XML) or Extensible
Stylesheet Language (XSL) document has been cached on a client computer,
subsequent requests to use the file may result in an unnecessary
"If-Modified-Since" GET request to the server if the file has not expired.
These extra requests slow down the performance of high-scaled servers and large
applications.
This occurs because of a problem in the Msxml.dll file.
To resolve this problem, install Microsoft XML (MSXML)
Parser version 3.0 or later, and use the XmlInst.exe tool to install MSXML 3.0
in Replace mode. When you run XmlInst.exe to install MSXML 3.0 in Replace mode,
all application references (including those for Internet Explorer) are remapped
to point to MSXML 3.0. If you do not install MSXML 3.0 in Replace mode,
Internet Explorer continues to use MSXML.dll instead of MSXML3.dll, and the
problem continually recurs.
You can download MSXML Parser version 3.0
from the following Microsoft Web site:
For more information, click the following article number to view the article in the Microsoft Knowledge Base:
269238Â
(http://kbalertz.com/Feedback.aspx?kbNumber=269238/
)
Version list for the Microsoft XML parser
You can download the Xmlinst.exe Replace Mode tool
from the following Microsoft Web site:
Microsoft has confirmed that this is a bug in the Microsoft
products that are listed in the "Applies to" section.This bug was corrected in MSXML Parser version 3.0.
When Internet Explorer downloads and caches content, if the
server has specified an expiration time for the content, Internet Explorer
should not send "If-Modified-Since" GET requests to the server to check for
content updates until after the expiration date and time have been reached
(which is indicated in the expiration header). Internet Explorer should only
send an "If-Modified-Since" GET request to check with the server if the content
is expired. However, with MSXML.dll (and thus with .xml and .xsl files), an
unnecessary "If-Modified-Since" GET request is sent even if the .xml or .xsl
file has not expired.
If all the files are loaded in the cache
because of a previous visit to the site, and if the files have not expired,
this bug can be observed in several different circumstances:
- When you click Back to browse to a previously visited XML document, Internet Explorer
sends an "If-Modified-Since" header to the server to check the status of the
XML file.
- When you type the URL in the Address bar to an XML document
that is linked to a XSL style sheet, Internet Explorer sends an
"If-Modified-Since" header for the XSL document but not the XML
document.
- When you call the load method of the XML DOMDocument object to load an XML document through script, Internet Explorer
sends an "If-Modified-Since" header for the XML file.
- When you use the XML data island in an ASP or HTML page, if
you click the URL or press the BACK button to access the page, Internet
Explorer sends an "If-Modified-Since" GET request to the server for the XML
file.
Perform the steps in the Resolution section to resolve the
first two issues.
For more information about how to
resolve the third issue, click the following article number to view the article
in the Microsoft Knowledge Base:
308603Â
(http://kbalertz.com/Feedback.aspx?kbNumber=308603/
)
The DomDocument Load method ignores content expiration
At this time, there is no resolution for the fourth
issue.
For more information about how to install MSXML 3.0 in
Replace mode, see the following Microsoft Web site:
For more information about the XML
DOMDocument object, see the following Microsoft Web site:
For more
information about developing Web-based solutions for Microsoft Internet
Explorer, visit the following Microsoft Web sites: