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

  • webworker

    BetterWorker 前言:JavaScript是单线程语言,一些复杂的运算不适合在主线程进行,否则可能导致主...

  • webWorker

    本篇文章仅供我自己学习使用,不建议从这篇文章中学习。因为文章中可能有错误。 传统的js都是单线程,webworke...

  • WebWorker

    浏览器执行环境是单线程的,一旦出现【主线程】耗时操作,就会造成浏览器卡死,用户点击没响应等情况。 Web Work...

  • webworker使用介绍,js中开启多线程

    【Webworker】 注:必须要在服务器环境。 什么是webworker?Web Worker为Web应用程序提...

  • 2018-03-15

    webNotification webWorker webServerSentEvent 01 webnotifi...

  • 初识H5开启多线程与服务器推送事件

    webworker 在以前的javascript中我们常用回调函数,来实现单线程异步。在H5中webworker解...

  • webWorker解决的问题与应用场景

    webWorker解决的是js中数据处理导致的UI线程阻塞所以webWorker的应用场景一般为需要大量计算的时候...

  • 实现Tab页之间通信的方式

    5 种方式: localstorage webworker web-socket cookie postMessa...

  • WebWorker异步处理

    HTML5的时代来到了,由于前端负责的数据处理越来越大,单单靠一个JS的单线程越来越力不从心,webWorker的...

网友评论

      本文标题:webWorker

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