Untitled Document
Zoom sur les différents modules de Google Gears

En savoir plus

 

Le module WorkerPool permet d’exécuter du code JavaScript en tâche de fond ce qui permet de lancer certains traitements sans pour autant bloquer l’exécution et l’affichage de la page principale.

 

// instanciation de la classe workerpool
var wp = google.gears.factory.create(‘beta.workerpool’,
‘1.1’) ;
Les échanges se font à travers des messages textes

Une fois la classe initialisée, on affecte à l’attribut onmessage la fonction qui sera invoquée lorsque la file d’attente reçoit un message. Les échanges se font à travers des messages textes ; des objets peuvent donc être échangés en utilisant la sérialisation JSON.

 

var wp = google.gears.factory.create(‘beta.workerpool’, 
‘1.1’) ; // fonction appelée de la réception d’un message dans
la file d’attente wp.onmessage = function(a, b, message) { alert('Message reçu ' + message.sender + ': ' +
message.text); } function evalHandler(msg, sender) { var result = eval(msg); google.gears.workerPool.sendMessage(String(result),
sender) } // creation du ‘producteur’ var workerCode = String(evalHandler) + ’google.gears.
workerPool.onmessage = evalHandler;’; var workerId = wp.createWorker(workerCode); // envoi un message wp.sendMessage(‘salut’, workerId);

Les processus ‘worker’ sont créés par le processus parent à l’aide de la méthode createWorker disponible au sein de l’objet WorkerPool qui retourne un handle spécifique. Cette méthode de création ne prend qu’un seul argument, contenant le code que le processus doit exécuter.

L’exemple ci-dessus présente les différentes étapes à suivre. Il faut remarquer que le ‘worker’ ne peut faire de manipulation directe sur le DOM de la page principale. Il est obligé de renvoyer le résultat de son traitement dans le cas où l’on désire l’afficher.


JDN Développeur Envoyer Imprimer Haut de page

RECHERCHER