48 votes

Filetage dans GWT (client)

Ce que je comprends, l'ensemble de la côté client d'une application GWT est converti en Javascript lorsque vous générez, donc je suppose que cette question est liée à la fois le Javascript et les possibilités que GWT propose.

J'ai un couple de douzaine de processus qui devront être prises dans mon application GWT, chaque processus continu de faire des appels à un serveur. Ne GWT soutien threading? Le GWT côté client, support de thread?

EDIT:

Ce lien les é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 planifiée "multi-threading" des tâches, que signifie cela?

36voto

Hilbrand Bouwkamp Points 11496

JavaScript n'est pas le support le multithreading. Cependant, GWT a une classe de 'simuler' threading, ce qui n'est pas réel multithreading, mais dans la plupart des cas, fait ce que vous avez besoin de: com.google.gwt.core.client.Scheduler.ScheduledCommand. La technique est basée sur la classe timer, qui exécute une méthode après le temps imparti est écoulé.

Par exemple, lorsque vous placez le code suivant dans votre propre code, l' scheduleDeferred méthode renvoie directement et votre code se poursuit après la commande, tandis que l' execute() méthode 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 répétition de la commande RepeatingCommand, qui peut être utilisé pour exécuter la commande plus d'une fois. Démarrer avec Scheduler.get().scheduleIncremental() qui va exécuter la commande jusqu'à ce que la méthode execute retourne false. Vous pouvez l'utiliser pour répartir les tâches en sous tâches de mieux " enfilage du comportement. L' Scheduler prend en charge certaines des méthodes supplémentaires pour lancer une commande planifiée de manière différente. Voir la JavaDoc pour plus de détails.

Édité et mis à jour avec de nouvelles GWT classe à la place de l'obsolète DeferredCommand.

4voto

Paul de Vrieze Points 3715

Il y a du travail sur le Web les Travailleurs dans le cadre de HTML5 qui est mis en œuvre dans un certain nombre de navigateurs, mais pas sur tous (notamment internet explorer). Vous pouvez utiliser ces fonctions lorsqu'elles sont disponibles, mais ce que vous devez faire est de regarder la programmation javascript modèle.

Javascript fonctionne généralement de manière asynchrone. Les demandes sont tiré et à un certain point, 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 d'un projet de refonte de votre système si.

1voto

Kurru Points 6746

La nouvelle méthode consiste à utiliser un planificateur

0voto

ammoQ Points 17866

JavaScript ne prend pas en charge le multithreading. Par conséquent, quelle que soit l'action de GWT, le multithreading doit être effectué uniquement côté serveur, car GWT ne peut utiliser que les fonctionnalités déjà disponibles côté client.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X