2010-03-15 21 views

risposta

11

JavaScript does not support native multithreading nei browser Web correnti. Anche se così fosse, scommetto che IE 6 non l'avrebbe supportato :)

L'esecuzione degli script in più iframe potrebbe essere una soluzione alternativa, come Jason Kester suggested in another answer.

Inoltre, per i browser moderni si potrebbe essere interessati a verificare Web Workers, ma questo è sicuramente qualcosa fuori della lega IE 6 del:

+2

+1 (Ed è una buona cosa che non lo è, penso ;-) – ChristopheD

+1

E i lavoratori del web? Non in IE6, ovviamente, ma comunque ... – luiscubal

+0

@luiscubale Sì, buon punto. Sono infatti menzionati nel post che ho collegato all'originale. Modificata la mia risposta per includere ulteriori informazioni. –

1

Google Gears è un plugin che funziona con IE6 e comprende qualcosa chiamato WorkerPools. Google Gears non sembra che sia stato sviluppato molto attivamente, perché ha cercato di spostare la maggior parte delle idee di Gears in HTML5. WorkerPools sono fondamentalmente processi in background che non condividono lo stato e comunicano solo attraverso i messaggi. In HTML5 questo è diventato WebWorkers. Puoi trovare maggiori informazioni qui: http://code.google.com/apis/gears/api_workerpool.html

2

Bene, HTML5 sta arrivando con Web-Workers. Ma dubito fortemente che ci sia una libreria che crea un wrapper per usarlo in IE6.

Does my browser support web workers?

+0

sono stupito che nessuno abbia menzionato gli operatori del web! –

+0

+1 per averne parlato :) –

1

Se volete semplicemente scrivere il codice sincrono e evitare di avere a che fare con i gestori di scrittura di eventi in tutto il luogo in tal modo, si può provare: Strands

3

Eseguire le attività in IFrame

Supponendo che si parli di multitasking dal lato client, è possibile aprire n frame sulla pagina, ognuno dei quali punta a una pagina sul proprio dominio.

Ci sono molti modi per architettarlo da lì. Probabilmente il modo più semplice sarebbe avere un singolo .js incluso che si esegue da ogni frame. Telefona a casa su parent.readyToGo() o altro, e ottiene un lavoro assegnato. I metodi worker possono chiamare qualcosa come parent.taskFinished() per segnalare quando hanno finito.

Soprattutto, non ascoltare nessuno che ti dice di non eseguire l'applicazione javascript multithread mission su IE6. Sono sicuro che hai buone ragioni :)