Web workers

C’est assez rigolo à mettre en place, surtout quand vous avez des traitements en javascript répétitifs comme c’est par exemple le cas avec la colorisation syntaxique de code !

Exemple d’une colorisation, sans utiliser de web workers, quand vous avez une dizaine d’exemples de code dans une page, dont un particulièrement long (plus de mille lignes) :

La mise en page finale, incluant la mise en forme colorée du code, n’est visible que quand tout les exemples de code ont été traités, ce qui peut durer pas mal de temps.

Maintenant le même traitement, cette fois-ci en utilisant un web-worker pour chacun des exemples de code, tout ces web-workers travaillant de manière concurrente (en parallèle) :

Vous voyez le résultat ? Chaque partie de code, une fois mis en forme est affiché sans attendre que le reste le soit aussi, d’autre part le visiteur n’a pas besoin d’attendre la fin du traitement pour interagir avec la page.

Il y a tout de même des inconvénients, sinon ça serait pas drôle : ça consomme beaucoup plus de mémoire, surtout s’il y a beaucoup de web-workers sollicités, et d’autre part le code javascript qui tourne au sein de ces petits processus n’a pas accès au DOM de la page, ce qui rend leur usage un peu moins souple !

Pour être pragmatique, c’est à utiliser avec parcimonie donc, compte-tenu des limitations inhérentes à cette technologie.

Ajouter un commentaire

Les commentaires peuvent être formatés en utilisant une syntaxe wiki simplifiée.

Ajouter un rétrolien

URL de rétrolien : https://open-time.net/trackback/13677

Haut de page