码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • 使用 Web Workers


    Web Workers API

    定义: 

    Web Workers 是 HTML5 提供的一个javascript多线程解决方案,我们可以将一些大计算量的代

    码交由web Worker运行而不冻结用户界面。它独立于其他脚本,不会影响页面的性能。您可以继

    续做任何愿意做的事情:点击、选取内容等等,而此时 web worker 在后台运行。

    语法解析: 

    生成一个专用 worker

    第一步:在主线程创建一个新的 worker 很简单。你需要做的是调用Worker() 的构造器,指定一个脚本的 URI 来执行 worker 线程

    var myWorker = new Worker('worker.js'); //创建Worker

    专用 worker 中消息的接收和发送

    你可以通过postMessage() 方法和onmessage事件处理函数触发 workers 的方法。当你想要向一个

    worker 发送消息时,你只需要这样做

    myWorker.postMessage([4, 5, 63, 4])会将这个值组成数组发送给worker

    在 worker 中接收到消息后,我们可以写这样一个事件处理函数代码作为响应(worker.js):

    1. //onmessage=function(e){ console.log(e.data) } //此函数接收主线程发过来的数据
    2. onmessage = function (e) {
    3. const data = e.data
    4. // postMessage() 此方法为响应回主线程的数据
    5. postMessage(
    6. data.sort((a, b) => {
    7. return a - b
    8. })
    9. )
    10. }
    11. /*
    12. 注意: 在主线程中使用时,onmessage和postMessage() 必须挂在 worker 对象上,
    13. 而在 worker 中使用时不用这样做。原因是,在 worker 内部,worker 是有效的
    14. 全局作用域。
    15. 当一个消息在主线程和 worker 之间传递时,它被复制或者转移了,而不是共享。
    16. */

    终止 worker

     如果你需要从主线程中立刻终止一个运行中的 worker,可以调用 worker 的terminate 方法:

    myWorker.terminate();

    worker 线程会被立即杀死,不会有任何机会让它完成自己的操作或清理工作。

    而在 worker 线程中,workers 也可以调用自己的 close  方法进行关闭:

    close();

  • 相关阅读:
    STM32F103 CubeMX 使用USB生成鼠标设备
    混淆技术研究笔记(八)扩展yGuard实现签名
    gogs运行报“gogs“: cannot run executable found relative to current directory
    羚数智能入选 IDC关于中国制造执行系统(MES)的市场2021年度份额报告
    226. 翻转二叉树
    必知必会的Java多线程可算是被讲透彻了,让我们一起深入浅出多线程!
    数据分析技能点-双变量的相关分析
    unity模型制作(终章)
    基于安卓的共享自习室的设计与实现
    ONEPIECE!程序环境和预处理——C语言最终章
  • 原文地址:https://blog.csdn.net/m0_62823653/article/details/125882691
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号