【问题标题】:web worker console.log网络工作者控制台.log
【发布时间】:2011-11-07 06:48:01
【问题描述】:

只有我一个人,还是console.log() 对 HTML5 网络工作者的要求太高了?

我知道操作 DOM 会被阻止,因为它有潜在的危险,但是 console.log() 真的有可能被多线程工作人员恶意利用吗?

【问题讨论】:

    标签: html console web-worker


    【解决方案1】:

    同意的事情会好很多,但使用postMessage 破解原始console.log 并不难。大卫弗拉纳根有一个很好的包装here

    【讨论】:

    • 确实不错的包装器,但不幸的是它的实现方式不允许使用 jQuery.Hive。
    • 我建议使用 Chrome 开发工具(表格 17+) - 然后您将获得一个不错的选项来调试您的工作人员,而无需使用 console.log
    • 调试与控制台日志记录不同,它们有不同但略有重叠的用例。
    【解决方案2】:

    只想发布 console.log 现在至少可以在 Chrome 浏览器中发布。

    不知道是哪个版本加的但是35.0.1916.153m有。

    限制

    虽然它有一个小限制,它只能输出基元(字符串,数字,布尔值),有时是一维数组。

    而且它只能在控制台日志中使用 first 参数。

    普通控制台日志:

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

    工作人员控制台日志:

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

    您可以使用console.log(JSON.stringify({ status: _status }));,但这不会处理循环引用对象,也不会输出漂亮/易于阅读的对象。

    更新:您可以通过 console.log(JSON.stringify(someObject, null, " ")); 使用 stringify 获得漂亮的打印。

    【讨论】:

    • 自 2020 年 5 月起,console.log 也可在 Firefox (v75.0) 中使用。添加时我现在也没有
    • 也可以在 Edge 中使用,至少 since version 12.
    猜你喜欢
    • 2013-12-22
    • 1970-01-01
    • 2015-03-16
    • 2013-10-10
    • 2013-05-18
    • 2014-07-20
    • 1970-01-01
    • 2023-01-30
    相关资源
    最近更新 更多