2009-08-18 12 views
6

J'utilise un plugin Firefox qui peut rafraîchir la fenêtre du navigateur toutes les X secondes. En tant que développeur frontend, c'est vraiment utile, car je peux obtenir des commentaires instantanés sur les changements CSS/XHTML au moment où je les sauvegarde dans mon éditeur.Comment actualiser le navigateur toutes les X secondes avec javascript?

J'ai remarqué, cependant, que cela cesse souvent de fonctionner. Je suppose que cela peut être dû à javascript/jQuery que j'ai ajouté à la page interférant avec le plugin.

Je me demandais simplement s'il était possible d'ajouter une ligne temporaire de javascript pour imiter ce comportement d'actualisation automatique lorsque cela était nécessaire.

Répondre

15
setTimeout("location.reload(true);", timeoutPeriod); 
+1

Cela fonctionne bien pour moi. Si vous ajoutez également une référence à un identifiant approprié dans la page de l'URL, par ex. ... index.html # footer vous pouvez garder visible la zone en cours de visualisation lors de l'actualisation. Agréable. – james6848

38

Le plus simple et hackiest solution pour rafraîchir la page est d'ajouter ceci à l'intérieur de la tête:

<meta http-equiv="refresh" content="30" /> 

pour rafraîchir toutes les 30 secondes.

Vous pouvez faire la même avec Javascript en faisant:

setTimeout('window.location.href=window.location.href;', 30000); 

Note: Il y a several methods of reloading the page in Javascript si ceux-ci travailleront également:

setTimeout('window.location.reload();', 30000); 

et

setTimeout('history.go(0);', 30000); 

et d'autres .

Ces deux éléments rechargeront complètement la page toutes les 30 secondes. C'est bien si tout ce que vous faites est quelque chose de rapide et sale. Généralement, cependant, pour quelque chose que les utilisateurs vont utiliser, vous aurez besoin de faire des rafraîchissements AJAX sur certaines parties de la page à la place. Par exemple:

setInterval(refresh_table, 30000); 

function refresh_table() { 
    $("#table_container").load("/load_table"); 
} 
+1

peut pas être juste location.reload() à la place? – karim79

+0

Il existe plusieurs façons de recharger la page. La mienne est certes plutôt vieille école. Voir http://www.mediacollege.com/internet/javascript/page/reload.html – cletus

+0

est la solution la plus simple pour rafraîchir automatiquement une page. – Steven

2

Cette balise meta fait la magie aussi. Il actualise la page toutes les 30 secondes et vous pouvez le changer trop

meta http-equiv = contenu "refresh" = "30"

Questions connexes