La propriété onmessage de l'interface Worker représente un EventHandler, à savoir une fonction qui est appelée lorsque l'événement message survient. Ces événements sont du type MessageEvent et sont appelés quand le parent du worker reçoit un message (c’est-à-dire à partir de la méthode DedicatedWorkerGlobalScope.postMessage.)

Remarque : le contenu du message est fourni par la propriété data de l'événement message.

Syntaxe

myWorker.onmessage = function(e) { ... }

Exemple

L'extrait de code suivant illustre la création d'un objet Worker utilisant le constructeur Worker(). Les messages sont passés au worker lorsque la valeur de l'élément de formulaire first change. Un gestionnaire onmessage est également présent pour s'occuper des messages retournés par le worker.

var myWorker = new Worker("worker.js");

first.onchange = function() {
  myWorker.postMessage([first.value,second.value]);
  console.log('Message envoyé au worker');
}

myWorker.onmessage = function(e) {
  result.textContent = e.data;
  console.log('Message reçu du worker');
}

Dans le script worker.js, un gestionnaire onmessage se charge des messages en provenance du script principal :

onmessage = function(e) {
  console.log('Message reçu du script principal');
  var workerResult = 'Result: ' + (e.data[0] * e.data[1]);
  console.log('Renvoi d\'un message au script principal');
  postMessage(workerResult);
}

Remarquez comment dans le script principal, onmessage doit être appelée par myWorker, tandis que dans le script du worker vous avez juste besoin d'appeler onmessage parce que le worker est en réalité le contexte global (DedicatedWorkerGlobalScope).

Pour un exemple complet, consulter notre Exemple basique de worker dédié (lancez le worker dédié).

Spécifications

Spécification Statut Commentaire
HTML Living Standard
La définition de 'Worker.onmessage' dans cette spécification.
Standard évolutif Aucune modification de Unknown.
Unknown
La définition de 'Worker.onmessage' dans cette spécification.
Statut inconnu Définition initiale.

Compatibilité des navigateurs

Nous convertissons les données de compatibilité dans un format JSON. Ce tableau de compatibilité utilise encore l'ancien format car nous n'avons pas encore converti les données qu'il contient. Vous pouvez nous aider en contribuant !

Fonctionnnalité Chrome Firefox (Gecko) Internet Explorer Opera Safari (WebKit)
Support de base 4 3.5 10.0 10.6 4
Fonctionnnalité Android Firefox Mobile (Gecko) Firefox OS (Gecko) IE Phone Opera Mobile Safari Mobile
Support de base 4.4 3.5 1.0.1 10.0 11.5 5.1

Voir aussi

L'interface Worker à laquelle elle appartient.

Étiquettes et contributeurs liés au document

Étiquettes : 
 Contributeurs à cette page : wakka27, fscholz, jean-pierre.gay
 Dernière mise à jour par : wakka27,