2011-08-31 22 views
33

Sono solo io, o è console.log() troppo chiedere per i lavoratori dal web HTML5?web lavoratore console.log

So che manipolare il DOM è bloccato perché è potenzialmente pericoloso, ma c'è davvero qualche possibilità che console.log() possa essere sfruttato maliziosamente da un operatore multithread?

risposta

22

cose concordati sarebbe molto più bello, ma non è troppo difficile da incidere su un primitivo console.log utilizzando postMessage. David Flanagan ha un bel wrapper here.

+1

Nice wrapper infatti, ma purtroppo il modo in cui viene implementato non consente l'utilizzo di jQuery.Hive. – ejang

+3

Vorrei suggerire di usare gli strumenti di sviluppo di Chrome (modulo 17+) - quindi avrai una buona opzione per eseguire il debug dei tuoi lavoratori senza la necessità di utilizzare console.log –

+10

Il debug non è lo stesso della registrazione della console, ma sono diversi ma leggermente sovrapposti casi d'uso. –

13

Volevo solo post che console.log è ora possibile atleast all'interno del browser Chrome.

Non so quale versione è stato aggiunto ma 35.0.1916.153 m ha.

Limitazione

C'è una piccola limitazione con esso, però, si può solo primitive uscita (stringhe, numeri, booleani) volte Array monodimensionale.

E può solo prendere l'argomento primo all'interno del log della console. log

Console normale:

console.log("status:", _status); // status: working 
console.log({ status: _status }); // { "status": working } 

Worker console di log:

console.log("status:", _status); // status: 
console.log({ status: _status }); // [object Object] 

si potrebbe usare console.log(JSON.stringify({ status: _status })); ma questo non sarebbe gestire oggetti referencing circolari e non sarà in uscita in un grazioso/facile da leggere oggetti .

Aggiornamento: È possibile ottenere una bella stampa con stringify facendo console.log(JSON.stringify(someObject, null, " "));.

+1

Grazie wormss e chrome! – Gamemorize