Mon pb est spécifique à IE8 en mode full IE8 ou IE7 émulé.
Lors d'une boucle d'affichage ( de la même image ici pour simplifier )
une fuite mémoire de 10 fois la taille de l'image jpeg concernée se produit à chaque tick.

Le pb n'est produit que si un style dimensionnel est attaché à l'image (ici width height 100%).
L'image est de taille 700Ko;
Pb sous XP SP3

Sous IE7 - le style n'est pas respecté mais il n'y a pas fuite mémoire, Ce que je préfère.

Code de la page html :

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
	<title>With CSS WIDTH/HEIGHT IE8 memory leak</title>
	<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
	<meta http-equiv="Pragma" content="no-cache" />
	<meta http-equiv="expires" content="-1" />
<script type="text/javascript">
	cas=0;
        function animate(){
                cas++;
		document.getElementById("idImg").src="sunset.jpg?"+cas;
        }
	function doIt() {
		alert("executing... \nYour browser is "+navigator.userAgent+"\n!!! Observe memory load");
		document.getElementById("idImg").onload=f_onload;
		animate();
	}
	function f_onload() {
		setTimeout(animate,3000);
	}
</script>
</head>
<body onload="doIt()">
<div>
    <img style="width:100%;height:100%;" src="sunset.jpg" alt="My img" id="idImg" />
</div>
</body>
</html>

Du coup il est impossible d'afficher un grand nombre de photos (défini ds un tableau) en boucle. J'ai transmis ce pb à Microsoft à travers le WebPage Report (addon de IE8), mais quelle réponse attendre ...
Exemple visible sous :
http://akiki.free.fr/BUGIE/p.html
Modifié par akiki (11 Nov 2009 - 17:23)
Mon pb n'ayant pas beaucoup d'echo ... J'insiste sur sa réalité en dérivant l'application
d'alsacreation reposant sur jQuery "Galerie d'images simple".
Mon application repose sur un array javascript contenant l'ensemble des images à afficher :
variable de nom ALL.
Chaque index contient l'Url de l'image et ses dimensions à afficher.
L'appli est visible sous http://akiki.free.fr/BUGIE/Galerie%20d'images%20simple.htm

Il y a toujours fuite mémoire de 8Mo à chaque "advance" alors que tout est normal sous IE7 Firefox Chrome.
C'est vraiment fou !

Le code javascript de gallery.js est :

jQuery(function($){

  var NUMIMAGE=0; //position on 1st image of ALL
  var ALL=[
    ["Galerie/ALL/sunset.jpg","666x500"]
  ];

  var settings = {
    thumbListId: "cmd",
    imgViewerId: "viewer",
    loaderTitle: "Chargement en cours",
    loaderImage: "Galerie/loader.gif"
  };

  var thumbLinks = $("#"+settings.thumbListId);
  var loader = $(document.createElement("img")).attr({
        alt: settings.loaderTitle,
        title: settings.loaderTitle,
        src: settings.loaderImage
      });

  $("#"+settings.thumbListId).after(
    $(document.createElement("p"))
      .attr("id",settings.imgViewerId)
      .append(
        $(document.createElement("img")).attr({
          alt: "",
          //src: ALL[NUMIMAGE][0]
          src: ""
        })
      )
  );

  var imgViewer = $("#"+settings.imgViewerId),
      bigPic = imgViewer.children("img");

  thumbLinks
    .click(function(e){
      NUMIMAGE++;
      if(NUMIMAGE>=ALL.length) NUMIMAGE=0; //loop
      e.preventDefault();
      var privat = {
	getTarget: ALL[NUMIMAGE][0]+"?"+(new Date).valueOf(), //no-cache
	getDims: ALL[NUMIMAGE][1].split("x")
      };
      var target=privat.getTarget;
      var s=privat.getDims;
      imgViewer.html(loader);
      bigPic
        .load(function(){
		bigPic[0].height=s[1];
		bigPic[0].width=s[0];
        	imgViewer.html($(this).fadeIn(500));
        })
        .attr("src",target);
    });


});

Modifié par akiki (12 Nov 2009 - 22:30)