2011-08-31 22 views
33

¿Soy yo solo, o es console.log() demasiado pedir de trabajadores web HTML5?web worker console.log

Sé que la manipulación del DOM está bloqueada porque es potencialmente peligroso, pero ¿hay realmente alguna posibilidad de que console.log() pueda ser explotado maliciosamente por un trabajador multiproceso?

Respuesta

22

De acuerdo, las cosas serían mucho más agradables, pero no es demasiado difícil hackear una primitiva console.log usando postMessage. David Flanagan tiene un buen envoltorio here.

+1

Bueno envoltorio de hecho, pero lamentablemente la forma en que se implementa no permite el uso de jQuery.Hive. – ejang

+3

Sugeriría usar herramientas de desarrollo de Chrome (formulario 17+) - luego obtendrá una buena opción para depurar a sus trabajadores sin la necesidad de usar console.log –

+10

La depuración no es lo mismo que el registro de consola, tienen diferentes pero se superponen un poco usecases. –

13

Solo quería publicar esa consola.log ahora es posible al menos dentro del navegador Chrome.

No sé qué versión se ha añadido, pero tiene 35.0.1916.153 m.

Limitación

Hay una pequeña limitación con él sin embargo, sólo puede primitivas de salida (cadenas, números, booleanos) a veces individuales arrays de dimensión.

Y solo puede tomar el primer argumento en el registro de la consola. registro

normales de la consola:

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

Trabajador consola log:

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

usted podría utilizar console.log(JSON.stringify({ status: _status })); pero esto no sería manejar objetos de referenciación circulares y no de salida en un bonito/fácil de leer objetos .

Actualización: Puede obtener una bonita impresión con stringify haciendo console.log(JSON.stringify(someObject, null, " "));.

+1

Gracias gusanos y cromo! – Gamemorize