je le code jQuery suivant:
var id_atual
var temp_id
var tempo_flash = 50
var $slide_atual = $('#slider .atual')
var $slide_prox = $('#slider .ocultar')
setInterval(function(){
id_atual = $slide_atual.attr('alt')
$.post('get_banner.php', {atual: id_atual}, function(proximo){
temp_id = proximo.split(';;')
$slide_prox.attr('src', temp_id[0]).load(function(){
$slide_atual.hide('fade', tempo_flash, function(){
$slide_atual.attr('alt', temp_id[1]).attr('src', temp_id[0]).load(function(){
$slide_atual.show('fade', tempo_flash)
})
})
})
})
}, 4000)
Et le code HTML suivant:
<div id="slider">
<img src="imagens/slider/imagen-slider.jpg" alt="1" class="atual"/>
<img src="" alt="" class="ocultar" />
</div>
Lorsque la classe .ocultar ont une
display: none;
Le vars tempo_flash est seulement le temps d'animation, et le fichier get_banner.php sert uniquement à obtenir la bannière suivante de la base de données mysql. Il est testé et fonctionne bien. Le problème que j'ai est qu'après un peu (4 ou 5 bannière changeant) le navigateur arrête de répondre (pour Firefox Chrome et Opera) et sur IE j'obtiens une alerte Stack overflow at line: 3
et le javascript de la page entière arrête de fonctionner.
Toute aide appréciée!
Avez-vous essayé de parcourir votre code avec un débogueur? –
Vous devriez dépenser l'argent pour obtenir cette clé de virgule fixe :-) – Pointy
Essayez de changer votre '$ .post()' en $ .ajax() 'et en incluant un paramètre' timeout'. J'imagine que les requêtes AJAX prennent un certain temps à compléter et à empiler et donc à manger les ressources des navigateurs. –