web-dev-qa-db-fra.com

Filetage dans GWT (client)

D'après ce que je comprends, tout le côté client d'une application GWT est converti en JavaScript lorsque vous construisez, je suppose donc que cette question est liée à la fois à JavaScript et à la possibilité que GWT offre.

J'ai quelques dizaines de processus qui devront être initiés dans ma demande de GWT, chaque processus passera ensuite aux appels à un serveur. GWT supporte-t-il la filetage? Le côté du client GWT supporte-t-il la filetage?

ÉDITER:

Ceci link états:

No JavaScript knowledge required If you’re just a user of the framework, 
which I am for the matter of discussion, you do not need to know JavaScript 
in order to write dynamic content, be it client-side such as rolling frames, 
docking panels or scheduled “multi-threading” tasks, or server-side calls 
using XMLHttpRequests (aka AJAX). 

ou des tâches "multi-threading" planifiées , qu'est-ce que cela signifie?

48
Federer

JavaScript ne supporte pas la multithreading. Cependant, GWT a une classe à "simuler" le filetage, qui n'est pas réel multithreading, mais dans la plupart des cas, ce dont vous avez besoin: com.google.gwt.core.client.Scheduler.ScheduledCommand. La technique est basée sur la classe de la minuterie, qui exécute une méthode après l'écoulement du temps donné.

Par exemple, lors de la mise en place du code suivant dans votre code propre, la méthode scheduleDeferred _ reviendra directement et votre code continue après la commande, tandis que la méthode execute() est exécutée à l'aide de la minuterie:

Scheduler.get().scheduleDeferred(new ScheduledCommand() {
   public void execute() {
      .. code here is executed using the timer technique.
   }
});

Vous pouvez créer une commande répétée RepeatingCommand, qui peut être utilisée pour exécuter la commande plus d'une fois. Démarrez-le avec Scheduler.get().scheduleIncremental() qui exécutera la commande jusqu'à ce que la méthode d'exécution renvoie false. Vous pouvez l'utiliser pour diviser les tâches en sous-tâches pour améliorer le comportement de "filetage". Le Scheduler prend en charge certaines méthodes supplémentaires pour démarrer une commande planifiée différemment. Voir le Javadoc pour plus de détails.

édité et mis à jour avec une nouvelle classe GWT au lieu du déprécié DeferredCommand.

36

Il existe des travaux sur les travailleurs Web dans le cadre de HTML5 qui est mis en œuvre dans un certain nombre de navigateurs, mais pas sur tous (plus particulièrement Internet Explorer). Vous pouvez utiliser ces fonctionnalités si disponibles, mais ce que vous devriez faire est de regarder le modèle de programmation JavaScript.

Javascript fonctionne généralement de manière asynchrone. Les demandes sont tirées et à un moment donné, leurs réponses sont reçues comme un événement. Vous pouvez avoir un grand nombre de demandes en attente en même temps. Cela nécessitera un peu de refonte de votre système cependant.

4
Paul de Vrieze

Nouvelle façon est d'utiliser un planificateur

1
Kurru

JavaScript ne prend pas en charge la multiplication multithreading, de sorte que le GWT effectue, multithreading doit être effectué uniquement sur le côté serveur, car GWT ne peut utiliser que des fonctionnalités déjà disponibles sur le côté client.

0