Partage
  • Partager sur Facebook
  • Partager sur Twitter

ClearInterval, normal que ça ne fonctionne pas ?

    7 octobre 2008 à 20:10:02

    Bonjour à tous.

    J'apporte encore aujourd'hui un problème assez étrange en javascript...

    Voici mon code:
    //La fonction lancée est chargement_load sur body grâce à l'évènement onload
    var interval_avance = false;
    var interval_charge = false;
    //Et tout plein d'autres variables mais on s'en fiche un peu
    function startCharge() {
    	if(chargement == 100) {
    
    	} else {
    		load[i] = new Image();
    		load[i].src = arrayFiles[i];
    		
    
    		if(load[i].complete) {
    			tailleChargee = tailleChargee+arrayTailles[i];
    			chargement = Math.round((tailleChargee*100)/total);
    			avanceCharge(); //Lancement d'avance charge
    			i++;
    		}
    
    	if(chargement>100) {
    	var nbImages = load.length;
    		alert("problème! " + nbImages + " images chargées. Le chargement a dépassé 100%. Contactez un administrateur du site si l'erreur se reproduit. Merci.");
    		clearInterval(interval_charge);
    	} else if(i>tailleArray) {
    		alert("Erreur... bizarre !");
    		clearInterval(interval_charge);
    	}
    }
    }
    
    
    function chargement_load() {
    	interval_charge = setInterval('startCharge()', 1);
    }
    
    function avanceCharge() {
    	avancementFin = Math.round((388 * chargement)/100);
    	avancementDouze = avancement + 12;
    	interval_avance = setInterval('avance()', 1);
    }
    	function avance() {
    		document.getElementById("charge").style.width = avancementDouze + "px";
    		document.getElementById("charge_centre").style.width = avancement + "px";
    		if(avancement == avancementFin) {
    			clearInterval(interval_avance);
    	if(chargement == 100) {
    			clearInterval(interval_charge);
    			alert("Fin."); //Paf, ça bug, rien ne s'arrête ! L'alert est répété en boucle...
    		}
    		} else {
    			avancement++;
    			avancementDouze++;
    		}
    	}
    

    Donc voilà grosso modo tout est dans le code, j'ai commenté la ligne qui montre bien le bug, en effet l'alert est infini !
    Ce n'est pas normal puisqu'il n'y a aucune boucle infinie et que tous les intervals sont arrêtés !

    Donc j'ai encore besoin de votre aide...

    En attendant moi je vais faire quelques tests sur le chargement des background puisqu'il semblerait que charger une image ( <img src="image.jpg" alt="" /> ) ne soit pas équivalent à afficher une image en background ( <div style="height: xxpx; width: xxpx; background: url('image.jpg');"></div> ). Bref encore un problème où j'accepterais volontier de l'aide !


    Merci d'avance ;) .
    • Partager sur Facebook
    • Partager sur Twitter

    ClearInterval, normal que ça ne fonctionne pas ?

    × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
    × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
    • Editeur
    • Markdown