• [^] # Re: workers ...

    Posté par . En réponse au journal Réflexion sur ASM.js ou quand le javascript deviens enfin performant :. Évalué à 4.

    Une partie de la réponse a été donnée : passer les attentes IO en arière plan.

    Beh non, les IO sont déjà pas en problème puisque toutes les opérations IO permisses par le navigateur sont "evented".

    Par contre ce qu'il faut comprendre c'est que lorsque du Javascript est en cours d'execution dans une page le navigateur doit attendre qu'il finisse pour pouvoir repeindre la page et accepter de nouvelles entrées utilisateur.

    Du coup si en réaction à une entrée utilisateur tu lance une opération de calcul qui prend une seconde, tu fige la page 1 seconde(ou le navigateur entier dans le cas de Firefox à moins que ça n'ai été réglé depuis).

    Démonstration: http://jsfiddle.net/nDf7r/9/

    une des utilités que je vois, c'est les jeux : calcul d'une partie d'image ou de coordonnées pendant que le navigateur traite l'affichage du calcul précédent.

    Effectivement c'est tout à fait le genre d'opération longue mais synchrone qu'on ne peut pas se permettre de faire dans le thread principal.

    En résumé les WebWorkers permettent d'exporter des fonction synchrone dans un ou plusieurs autre threads et de les utiliser de manière asynchrone.