2010-06-20 4 views
7

L'actualisation automatique de Jquery utilise beaucoup de mémoire de navigateur. Y at-il un moyen d'arrêter cela. J'ai eu un 2 raf rafraîchissant toutes les 3 secondes mais je l'ai déplacé jusqu'à 9 et 15 secondes, ça m'a aidé un peu plus longtemps la fenêtre reste ouverte sur mon site le plus de mémoire qu'il faut jusqu'à ce que le navigateur tombe en panne.Jquery auto refresh div

<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js" ></script> 


<script> 
var auto_refresh = setInterval(
function() 
{ 
$('#details2').load('links2.php').fadeIn("slow"); 
}, 15000); // refresh every 10000 milliseconds</script> 
+0

Quel plugin/code utilisez-vous pour cela? – Matt

+2

Pouvez-vous poster une partie du code impliqué? – Pointy

+0

Répondre

2

Vous pouvez essayer d'ignorer load() et utiliser $ .ajax à la place. Je sais charger(); est une requête ajax mais je crois me rappeler qu'elle récupère tout le script. Essayez de demander un script, effectuez les calculs de votre base de données et renvoyez les données au format json. Je suppose que vous envoyez html complet avec les données de la demande de base de données. Essayez ceci avec json à la place. Vous obtiendrez les données en tant qu'objet, comme ceci par exemple.

{"variable":"foo"} 

Ensuite, vous pouvez récupérer les données avec une instruction simple. Je pense que cela ne devrait pas entraîner de fuite de votre mémoire et, éventuellement, bloquer votre navigateur, même si vous l'appelez tous les deux ou trois secondes. Essayez-le et faites-moi savoir comment ça se passe.

Bonne chance!

+0

merci stefan, cela semble assez simple pour travailler. –

0

Essayez de changer à ceci:

// ... 
$('#details2').empty().load('links2.php').fadeIn('slow'); 

Il peut halp de dire explicitement jQuery pour vider le réservoir d'abord, il peut libérer des gestionnaires d'événements, etc. (Bien qu'il ne sait pas qu'il y serait des gestionnaires là-dedans ...)

éditer — réellement en fait; J'ai vérifié les sources jQuery et il ressemble à appeler .html() (ce qui load() fait, je suis assez sûr) semble toujours appeler empty() d'abord de toute façon.

+0

Je vais essayer n'importe qui qui sait que cela pourrait fonctionner. Merci –

0

Bien qu'une réponse ait été approuvée mais je devrais vous dire cela. J'ai eu le même problème.

J'ai trouvé le problème dans src du fichier JQuery. J'ai utilisé l'URL du site JQuery comme source et j'ai augmenté mon utilisation de l'ordinateur à 99%. Mais alors j'ai téléchargé le script JQuery entier et l'ai enregistré dans mon répertoire de site Web, je l'ai utilisé dans ma source et alors il n'y avait aucun problème avec l'utilisation d'ordinateur ou la mémoire. Essayez aussi cela ..