2011-08-31 40 views
33

Chỉ là tôi, hoặc là console.log() quá nhiều để yêu cầu từ công nhân web HTML5?web worker console.log

Tôi biết rằng thao tác DOM bị chặn bởi vì nó có khả năng nguy hiểm, nhưng thực sự có khả năng nào console.log() có thể bị khai thác độc hại bởi một công nhân đa luồng không?

Trả lời

22

Những điều đồng ý sẽ đẹp hơn rất nhiều, nhưng không quá khó để hack một số nguyên thủy console.log sử dụng postMessage. David Flanagan có một wrapper đẹp here.

+1

Trình bao bọc đẹp thực sự, nhưng thật không may là cách nó được triển khai không cho phép sử dụng jQuery.Hive. – ejang

+3

Tôi khuyên bạn nên sử dụng công cụ Chrome dev (biểu mẫu 17+) - sau đó bạn sẽ có tùy chọn tốt để gỡ lỗi công nhân của mình mà không cần sử dụng console.log –

+10

Gỡ lỗi không giống như ghi nhật ký bảng điều khiển. trường hợp sử dụng. –

13

Chỉ muốn đăng console.log đó bây giờ có thể ít nhất trong Trình duyệt Chrome.

Tôi không biết phiên bản nào đã được thêm nhưng 35.0.1916.153 m đã có.

Giới hạn

Có một hạn chế nhỏ với nó mặc dù, nó có thể chỉ ra nguyên thủy (chuỗi, số, các phép toán luận) đôi khi đơn mảng kích thước.

Và chỉ có thể tham số đối số đầu tiên trong nhật ký bảng điều khiển.

Bình thường điều khiển đăng nhập:

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

Worker điều khiển đăng nhập:

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

Bạn có thể sử dụng console.log(JSON.stringify({ status: _status })); nhưng điều này sẽ không xử lý đối tượng tham chiếu vòng tròn và sẽ không đầu ra trong một khá/dễ đọc đối tượng .

Cập nhật: Bạn có thể in đẹp bằng cách cắt bằng console.log(JSON.stringify(someObject, null, " "));.

+1

Cảm ơn bạn wormss và chrome! – Gamemorize