web-dev-qa-db-fra.com

Quels sont les cas d'utilisation pour les travailleurs Web?

Je recherche des scénarios concrets pour utiliser API Web Workers .

164
Sergey Ilinsky
  • John Resig (de la renommée jQuery) a ne foule d'exemples intéressants d'utilisation de travailleurs Web ici - jeux, graphismes, crypto.

  • Une autre utilisation est Web I/O - en d'autres termes, interroger des URL en arrière-plan. De cette façon, vous ne bloquez pas l'interface utilisateur en attente des résultats d'interrogation.

  • Autre utilisation pratique: dans Bespin, ils utilisent Web Workers pour la coloration syntaxique, ce que vous ne voudriez pas vous empêcher de modifier votre code pendant que vous utilisez l'application.

  • De Mozilla : Une des façons pour les utilisateurs de travailler est de permettre à votre code d'effectuer des calculs gourmands en ressources processeur sans bloquer le thread d'interface utilisateur.

    Comme exemple pratique, imaginons une application qui possède un grand tableau de #s (il s'agit du monde réel, BTW - tiré d'une application que j'ai programmée il y a environ 2 ans). Vous pouvez modifier un numéro dans une table via le champ de saisie et une série d'autres nombres dans différentes colonnes est recalculée au cours d'un processus assez intensif.

    L'ancien workflow était le suivant: changez le #. Allez prendre un café pendant que JavaScript corrige les modifications apportées aux autres numéros et que la page Web ne répond pas pendant 3 minutes, après l'avoir optimisée à fond. Reviens avec un café. Changer un deuxième #. Répétez plusieurs fois. Cliquez sur le bouton ENREGISTRER.

    Le nouveau flux de travail avec les travailleurs pourrait être le suivant: Modifiez le #. Recevez un message indiquant que quelque chose est en train d'être recalculé, mais que vous pouvez en changer d'autres. Changer plus de #s. Une fois les modifications terminées, attendez que l'état passe à "tous les calculs terminés, vous pouvez maintenant consulter le nombre final et enregistrer".

135
DVK

Je les ai utilisés pour envoyer de plus grandes quantités de données du navigateur au serveur. Évidemment, vous pouvez le faire avec des appels normaux AJAX, mais si cela prend l'une des précieuses connexions par nom d'hôte. Aussi, si l'utilisateur effectue une transition de page au cours de ce processus (par exemple, il clique sur un lien ), vos objets JavaScript de la page précédente disparaissent et vous ne pouvez pas traiter les rappels. Lorsqu'un travailleur Web est utilisé, cette activité se déroule hors bande, ce qui vous garantit une meilleure exécution.

32
Kevin Hakanson

Un autre cas d'utilisation:

Compression/décompression de fichiers en arrière-plan, si vous avez beaucoup d'images et d'autres fichiers multimédias échangés à partir du serveur au format compressé.

6
sbr