webWorker

作者: 超超超喜欢大河 | 来源:发表于2021-03-03 14:03 被阅读0次

    本篇文章仅供我自己学习使用,不建议从这篇文章中学习。因为文章中可能有错误。

    传统的js都是单线程,webworker的引入就是为了解决js只有单线程的问题。在进行科学计算,密集型计算的时候webworker不会阻塞页面,这样对用户体验会有很好的提升。
    但是webWorker和传统语言的多线程还不一样,webworker里面的内容和主线程内容只能通过onmessage和postmessage进行通信,不能共享变量,所以不需要像其他语言那样在进行多线程的时候加锁开锁。webWorker的多线程更像是在本地浏览器内开了一个微型服务器,微型服务器进行一些复杂的计算,和主线程进行通信。

    同源限制

    分配给 Worker 线程运行的脚本文件,必须与主线程的脚本文件同源。

    dom限制

    worker内的全局对象与主线程不已昂,无法使用document、window这些对象。但是,worker线程可以使用navigator对象和location对象。(navigator对象包含所有的浏览器信息。)。(Location 对象包含有关当前 URL 的信息。)

    通信联系

    worker线程和主线程不在同一个上下文环境,不能直接通信,需要通过消息。

    脚本限制

    worker线程不能使用alert()方法和confirm方法,但是可以使用XMLHttpRequest 对象发送ajax请求。试验了,确实可以发送ajax请求。

    文件限制

    worker线程无法读取本地文件,即不能打开本机的文件系统(file://)。

    相关文章

      网友评论

          本文标题:webWorker

          本文链接:https://www.haomeiwen.com/subject/hmtqqltx.html