PRB: Internet Explorer Cache Is Not Used When You Run innerHTML Code to Insert the Same Image Multiple Times

This article has been archived. It is offered "as is" and will no longer be updated.
When you run Internet Explorer, the Internet Explorer cache is not used as you expect when you run innerHTML code to insert the same image multiple times. Notice the following code samples:
myDiv1.innerHTML = "<IMG SRC='image.gif'>"				
myDiv2.innerHTML = "<IMG SRC='image.gif'>"				
The preceding code results in sending two GET requests to retrieve the Image.gif file in Internet Explorer 6.0. Three GET requests are sent to retrieve the Image.gif file in Internet Explorer 5.5. Your expectation is that the Web server would be hit only one time.
To work around this problem, use one or both of the following methods:
  • Preload the image in a DIV element with the display:none attribute:
    <DIV style='display:none'><IMG SRC='image.gif'></DIV>				
  • Create a brief time-delay so that Internet Explorer has enough time to verify whether the image is in the cache, and then call the innerHTML property.
This behavior is by design.
extra request

Article ID: 319546 - Last Review: 06/19/2014 14:36:00 - Revision: 6.0

  • kbnosurvey kbarchive kbprb KB319546