2010-09-22 8 views

Répondre

2

Si vous voulez que le navigateur pour rafraîchir automatiquement toutes les 30 secondes, vous pouvez accomplir cela avec:

new Timer() { 
    @Override 
    public void run() { 
    Window.Location.refresh(); 
    } 
}.schedule(30000); // milliseconds 

Ce utilise schedule() au lieu de scheduleRepeating() parce que recharger la page comme cela entraînera votre code GWT arrêter et recommencer frais depuis le début. Vous voulez probablement éviter cela. Je vais être honnête, cette pratique "sent" assez mauvais pour moi. Si vous donnez un peu plus d'informations sur la raison pour laquelle vous voudriez actualiser la page toutes les 30 secondes (nécessitant ainsi le rechargement de votre code GWT), je peux probablement vous conseiller sur la meilleure façon de faire ce que vous voulez faire.

+0

D'accord, ce n'est pas une bonne pratique. Vous devez utiliser Timer pour planifier un appel de service, plutôt qu'une actualisation de page, qui télécharge uniquement les données susceptibles d'avoir été modifiées au cours des 30 dernières secondes. Ensuite, actualisez par programmation uniquement les parties de la page qui en ont besoin. Cela vous donnera une expérience utilisateur beaucoup plus agréable et beaucoup moins de téléchargement redondant de contenu statique. – dslh

+0

@ hambend J'ai juste une grande table laide sans pagination, sur cet écran. Et je charge juste ce panneau spécifique sur lequel la table prospère. – frappuccino

+0

J'utilise la minuterie. Avoir une exigence étrange où l'utilisateur veut s'asseoir et regarder un écran, tandis que le chargement de la page devrait actualiser pour afficher le dernier état. (Il est mis à jour par un processus d'arrière-plan) – frappuccino