Maison >interface Web >Tutoriel H5 >Raid sur l'extension 1 de l'API Javascript HTML5 – Exécution asynchrone de Web Worker et compétences du didacticiel Overview_html5 associées

Raid sur l'extension 1 de l'API Javascript HTML5 – Exécution asynchrone de Web Worker et compétences du didacticiel Overview_html5 associées

WBOY
WBOYoriginal
2016-05-16 15:50:041383parcourir
Mécanisme d'exécution Javascript
Avant HTML5, l'exécution de JavaScript dans les navigateurs fonctionnait de manière monothread, bien qu'il existe de nombreuses façons de simuler le multi-threading (par exemple : dans la méthode setinterval Javascript, la méthode setTimeout , etc.), mais en substance, l'exécution du programme est toujours effectuée par le moteur JavaScript de manière planifiée à un seul thread. Le thread de travail introduit dans HTML5 permet au moteur Javascript côté navigateur d'exécuter du code Javascript simultanément, obtenant ainsi une bonne prise en charge de la programmation multithread côté navigateur.

Threads multiples en Javascript - WebWorker
Web Worker en HTML5 peut être divisé en deux types de threads différents, l'un est un thread dédié Dedicated Worker et l'autre est un thread partagé Partagé Travailleur. Les deux types de threads répondent à des objectifs différents.
Travailleur Web dédié
Un travailleur dédié est connecté au script qui l'a créé. Il peut communiquer avec d'autres travailleurs ou composants du navigateur, mais il ne peut pas communiquer avec le DOM. La signification de dédié, je pense, est que ce fil ne gère qu'une seule exigence à la fois. Les threads dédiés sont implémentés dans divers navigateurs grand public, à l'exception d'IE, et peuvent être utilisés en toute confiance.
Créer un thread
Créer un travailleur est très simple. Il suffit de transmettre le nom du fichier JavaScript qui doit être exécuté dans le thread au constructeur.
Communication par thread
Pour communiquer entre le thread principal et le sous-thread, les méthodes postMessage et onmessage de l'objet thread sont utilisées. Peu importe qui envoie des données à qui, l'expéditeur utilise la méthode postMessage et le destinataire utilise la méthode onmessage pour recevoir des données. postMessage n'a qu'un seul paramètre, qui correspond aux données transférées, et onmessage n'a également qu'un seul paramètre. S'il s'agit d'un événement, les données reçues sont obtenues via event.data.
Envoyer des données JSON
JSON est quelque chose de pris en charge nativement par JS. Il n'est pas nécessaire de l'utiliser en vain. Utilisez JSON pour transmettre des données complexes. Par exemple :

Copier le code
Le code est le suivant :

postMessage({ 'cmd': 'init', 'timestamp': Date.now()});

Gestion des erreurs
Lorsqu'une erreur se produit dans un fil, c'est une erreur le rappel d'événement sera appelé. La façon de gérer les erreurs est donc très simple : elle consiste à accrocher l'événement onerror de l'instance de thread. Cette fonction de rappel a un paramètre error, qui comporte 3 champs : message - le nom du fichier d'erreur ; le fichier de script où l'erreur s'est produite ;
Détruisez le fil
À l'intérieur du fil, utilisez la méthode close pour se détruire. Dans le thread principal en dehors du thread, utilisez la méthode terminate de l'instance de thread pour détruire le thread.
Regardons le fonctionnement de base des threads à partir d'un exemple :
Code HTML :

Copier le code
Le code est le suivant :



content="text/ html; charset=utf-8" />
web worker fibonacci