Programmazione.it v6.4
Ciao, per farti riconoscere devi fare il login. Non ti sei ancora iscritto? Che aspetti, registrati adesso!
Info Pubblicit� Collabora Autori Sottoscrizioni Preferiti Bozze Scheda personale Privacy Archivio Libri Corsi per principianti Forum
Guida ad HTML5: eseguire codice JavaScript in background (3/3)
Scritto da Pellegrino Principe il 26-11-2010 ore 11:23
Parallel Studio XE 2015
Concludiamo la disamina dei Web Worker evidenziando che gli statement JavaScript, scritti allinterno di un worker, non possono utilizzare loggetto window e di conseguenza il suo riferimento alloggetto document, con le relative API per la manipolazione e gestione del DOM (Document Object Model).

Al contempo, il worker ha un suo scope (ambito di risoluzione globale) che differisce da quello della pagina web, e pertanto il riferimento this non far mai riferimento alloggetto window, bens alloggetto worker stesso. Tramite il suo this potremo, pertanto, accedere solo ai seguenti elementi: loggetto self; la funzione di tipo costruttore XMLHttpRequest; loggetto navigator con le propriet appName, appVersion, userAgent, platform; le funzioni di tipo costruttore stabilite nello standard ECMAScript (come Array, String, Date, RegExp, Object ecc.); loggetto location (uguale alloggetto window.location) in sola lettura; la funzione setTimeout; la funzione setInterval e la funzione importScripts.

Questultima consente di importare, allinterno del contesto del worker e in modo sincrono, dei file JavaScript. Cos, ad esempio, la seguente invocazione importer i file check.js e execute.js nel corrente worker:
  1. importScripts("check.js", "execute.js");

Largomento passato alla funzione postMessage pu contenere un valore di qualsiasi tipo (Object, Array, primitivo ecc.). In caso di passaggio di un tipo oggetto, esso pu essere utilizzato dalla pagina web e dal worker come se lo condividessero, pur avendo contesti di esecuzione differenti, e ci grazie al fatto che tale oggetto viene serializzato e deserializzato automaticamente.

Inoltre, un worker pu essere terminato programmaticamente dalla pagina web invocando la funzione terminate, e nellambito del worker invocando la funzione close. E importante sottolineare che dopo la terminazione, o chiusura, il worker non esister pi e pertanto, se vorremo riutilizzarlo, dovremo crearlo nuovamente non essendo disponibile una funzione di restart. Da un worker anche possibile creare altri worker per lesecuzione di specifiche computazioni dividendo, di fatto, il lavoro in pi subworker.

Infine, annotiamo che nellambito della specifica dei Web Worker esistono anche i cosiddetti Shared worker (worker condivisi), creati con la funzione di tipo costruttore window.SharedWorker. Essi, in breve, permettono a pi documenti di accedere allo stesso worker e a questultimo di servire pi documenti. Tuttavia, gli unici browser che al momento li supportano sono Chrome e Opera.
Precedente: Oggetti Python in cella con pyspread
Successiva: Guida ai cavi e connettori: connettori USB (4/4)
Copyright Programmazione.it™ 1999-2015. Alcuni diritti riservati. Testata giornalistica iscritta col n. 569 presso il Tribunale di Milano in data 14/10/2002. Pagina generata in 0.21 secondi.