首页 > 编程语言 >javascript之web worker

javascript之web worker

时间:2023-03-07 09:48:08浏览次数:43  
标签:web 对象 Worker javascript worker js 线程 上下文

众所周知,js最初设计是运行在浏览器中的,为了防止多个线程同时操作DOM,带来渲染冲突问题,所以js执行器被设计成单线程。但随着前端技术的发展,js能力远不止如此,当我们遇到需要大量计算的场景时(比如图像处理、视频解码等),js线程往往会被长时间阻塞,甚至造成页面卡顿,影响用户体验。为了解决单线程带来的这一弊端,Web Worker 应运而生。

参考:https://juejin.cn/post/7139718200177983524

虽然 Worker 线程是在浏览器环境中被唤起,但是它与当前页面窗口运行在不同的全局上下文中,我们常用的顶层对象 window,以及 parent 对象在 Worker 线程上下文中是不可用的。另外,在 Worker 线程上下文中,操作 DOM 的行为也是不可行的,document对象也不存在。但是,location和navigator对象可以以可读方式访问。除此之外,绝大多数 Window 对象上的方法和属性,都被共享到 Worker 上下文全局对象 WorkerGlobalScope 中。同样,Worker 线程上下文也存在一个顶级对象 self。

js 主线程与 worker 线程数据传递:主线程与 worker 线程都是通过 postMessage 方法来发送消息,以及监听 message 事件来接收消息。如下所示:

类似于master和worker

>>web worker应用场景:需要进行大量计算的场景。防止主线程阻塞

标签:web,对象,Worker,javascript,worker,js,线程,上下文
From: https://www.cnblogs.com/2008nmj/p/17186977.html

相关文章

  • websocket
    websocketWebSocket协议运行在TCP协议之上,与Http协议同属于应用层网络数据传输协议。WebSocket相比于Http协议最大的特点是:允许服务端主动向客户端推送数据。WebSocket......
  • 浅谈基于Web的跨平台桌面应用开发
    作者:京东物流王泽知近些年来,跨平台跨端一直是比较热门的话题,Writeonce,runanywhere,一直是我们开发者所期望的,跨平台方案的优势十分明显,对于开发者而言,可以做到一次开......
  • JavaWeb中文乱码问题
    概述在JavaWeb中通过请求(request)和响应(response)来进行数据传递的过程中,有一个不可避免的问题,即传输的数据中有可能包含中文。当传输的数据中包含中文时,往......
  • 17 如何使用Qweb开发一个页面
    odoo注重敏捷,但是同时也带来的问题我就是不够灵活,如果有一天你的boss让你做一个工作台,将其他模型的数据进行统计,并使用图表的形式进行展示。这时候该如何做呢?很明显odo......
  • workers_per_gpu=0报错
    如果直接将workers_per_gpu=0会报错:'persistent_workersoptionneedsnum_workers>0'解决方法:需要将:persistent_workers=False。参考链接......
  • JavaScript对象及面向对象基础(对象、构造函数、原型对象、继承、原型链、借用构造函数
    JavaScript是一种描述性语言,是一种基于对象和事件驱动的,具有安全性能的脚本语言。JavaScript语言是通过一种叫做“原型”的方式来实现面向对象编程的。一、对象(1)内置对象Str......
  • WebUploader上传文件夹的三种解决方案
    ​ 1、介绍enctypeenctype 属性规定发送到服务器之前应该如何对表单数据进行编码。enctype作用是告知服务器请求正文的MIME类型(请求消息头content-type的作用一样)1、......
  • 云平台测试负载均衡Web服务器安装配置
    1.关闭selinux.2.安装httpd服务组件3.配置httpd  3.1修改配置文件:vi/etc/httpd/conf/httpd.conf      -------------------------------------------......
  • ASP.NET Core 使用app.UseStaticFiles配置静态文件中间件,达到类似IIS中虚拟目录的效果
    1、项目中静态文件存放在wwwroot文件夹之下,如下:要访问nihao.jpg这个文件夹,url路径可以这样写:<imgsrc="~/images/inhao.jpg"alt="pic"/>wwwrootcssimagesnihao.jpgjs那......
  • App测试和Web测试的不同
    无意中想起来了多年前去面试被提问的的问题:App测试和Web测试有什么不同?只记得当时回答得比较片面,天天忙于测测测的职场人儿,没有时间去总结经验和学习新的技术。今天炒老饭......