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
Greenpeace
Guida ad HTML5: eseguire codice JavaScript in background (1/3)
Scritto da Pellegrino Principe il 19-11-2010 ore 12:14
Mediante le API, denominate Web Workers, è possibile scrivere codice JavaScript che viene eseguito in background, ovvero in un thread separato di esecuzione, e che non interferisce con l’esecuzione di altri script, che eventualmente girano nella pagina web da cui ha avuto origine.

Ciò implica, che se stiamo eseguendo uno script in background, l’interfaccia utente del browser e della pagina web non viene bloccata, ma rimane perfettamente utilizzabile. Pertanto, grazie a queste API, oggi, possiamo sviluppare applicazioni che richiedono complessi algoritmi computazionali, utilizzando il paradigma del multithreading: si pensi, a programmi per la manipolazione di immagini, che utilizzano effetti di Gaussian blur, sharpening, embossing, ecc. oppure a programmi che elaborano scene in spazi tridimensionali.

Ovviamente, per scrivere applicazioni dispendiose dal punto di vista computazionale, non è solo sufficiente avere a disposizione delle API per il multithreading, ma occorre anche avere degli interpreti JavaScript progettati in modo efficiente e performante. Da questo punto di vista, fortunatamente, gli implementatori dei moderni browser sono seriamente impegnati a fornire i loro browser di potenti motori JavaScript, quali ad esempio V8 di Chrome, JägerMonkey di Firefox 4, Nitro di Safari e Carakan di Opera.

Prima di analizzare in dettaglio le API dei Web Workers, e studiare come utilizzare la programmazione concorrente in JavaScript, facciamo una breve digressione teorica sui concetti di processo e thread. Un processo è definibile come un ambiente di esecuzione al cui interno gira il programma che l’ha creato. Esso è, pertanto, un’unità di elaborazione, indipendente dagli altri processi, con il suo spazio di memoria, il suo codice di esecuzione e i suoi riferimenti a risorse di sistema eventualmente per esso allocate.

Un thread è, invece, definibile come un’unità di elaborazione cui può essere diviso un processo. Esso risiede al suo interno, dove condivide con eventuali altri thread, le risorse, la memoria e le informazioni sullo stato del processo medesimo. Possiamo, dunque, immaginare in modo “figurativo”, il processo come una sorta di “fune” e i thread come i singoli “fili” che lo avvolgono.

Nella prossima puntata, vedremo come si utilizzano i worker creando una semplice applicazione che esegue il “complesso” algoritmo di processare una stringa, dove per ogni suo carattere ne crea un altro applicando un fattore di casualità. Ovviamente, il programma ha solo lo scopo di dimostrare i passi da eseguire per utilizzare il multithreading e può fungere da template per progettare applicazioni che realmente hanno la necessità di eseguire script in modo concorrente.
Precedente: Programming the Mobile Web
Successiva: WS-I ha concluso il suo lavoro sugli standard operativi per i Web Service
Intervento di Cesare Di Mauro a.k.a. cdimauro del 19-11-2010 ore 13:55, San gregorio di catania (CT)
Marchese
Marchese
(910 interventi)
Iscritto il 22-05-2008
Copyright Programmazione.it™ 1999-2013. Alcuni diritti riservati. Testata giornalistica iscritta col n. 569 presso il Tribunale di Milano in data 14/10/2002. Pagina generata in 1.039 secondi.