广告位联系
返回顶部
分享到

HTML5 Web Worker(多线程处理)介绍

html5 来源:互联网 作者:佚名 发布时间:2023-01-16 21:46:32 人浏览
摘要

概述 JavaScript的执行环境是单线程的,也就是一次只能执行一个任务。如果遇到多个任务时,只能排队依次执行。 在HTML5中,可以使用Web Worker创建一个后台线程执行一个耗时任务,而不

概述

JavaScript的执行环境是单线程的,也就是一次只能执行一个任务。如果遇到多个任务时,只能排队依次执行。

在HTML5中,可以使用Web Worker创建一个后台线程执行一个耗时任务,而不会影响页面响应。

简单使用

Web Worker技术基本原理就是:在当前JavaScript的主线程中,使用Worker()构造函数新建一个worker实例,然后加载某一个JavaScript文件,发送给一个后台线程来处理(注意,这里是后台线程)。

worker.html

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

<!DOCTYPE html>

<html>

    <head>

        <meta charset="utf-8">

        <title></title>

        <script>

            //创建worker

            var worker = new Worker("worker.js");

            //向后台线程发送数据

            worker.postMessage("hello world");

            //监听后台线程返回的数据

            worker.onmessage = function(e) {

                console.log("前台线程收到:" + e.data);

            };

        </script>

    </head>

    <body>

    </body>

</html>

worker.js

1

2

3

4

5

6

7

onmessage = function(e) {

    //接收前台发来的数据

    var d = e.data;

    console.log("后台线程收到:" + d);

    var str = d.split("").reverse().join("");

    postMessage(str);

};

在这里插入图片描述

处理复杂数据

worker.html

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

<!DOCTYPE html>

<html>

    <head>

        <meta charset="utf-8">

        <title></title>

        <script>

            var worker;

            window.onload = function() {

                var start = document.getElementById("start");

                var stop = document.getElementById("stop");

                start.onclick = function() {

                    worker = new Worker("worker.js")

                    worker.onmessage = function(e) {

                        console.log("前台接收:" + e.data);

                    }

                }

                stop.onclick = function() {

                    worker.terminate();

                }

            }

        </script>

    </head>

    <body>

        <button id="start">开始</button>

        <button id="stop">停止</button>

    </body>

</html>

worker.js

1

2

3

4

5

6

7

8

var i = 0;

 

function handleTask() {

    i++;

    console.log("handle:" | i);

    postMessage(i);

}

setInterval(handleTask, 1000);<font face="Tahoma"><span style="white-space: normal;"> </span></font>


版权声明 : 本文内容来源于互联网或用户自行发布贡献,该文观点仅代表原作者本人。本站仅提供信息存储空间服务和不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权, 违法违规的内容, 请发送邮件至2530232025#qq.cn(#换@)举报,一经查实,本站将立刻删除。
原文链接 : https://blog.csdn.net/qq_14876133/article/details/128469246
相关文章
  • html中ul和li标签的用法介绍

    html中ul和li标签的用法介绍
    普通的显示数据的时候,ul就是项目列表,li就是列表项。可以用来显示数据。如果用于DIV+CSS布局的话,ul+li可以替换表格的作用,具体的
  • HTML5 Web Worker(多线程处理)介绍

    HTML5 Web Worker(多线程处理)介绍
    概述 JavaScript的执行环境是单线程的,也就是一次只能执行一个任务。如果遇到多个任务时,只能排队依次执行。 在HTML5中,可以使用Web W
  • html5播放器实现倍速播放的方法介绍
    定义和用法 playbackRate 属性设置或返回音频的当前播放速度。 playbackspeed 指示音频的当前播放速度。 例值: 1.0 正常速度 0.5 半速(更慢)
  • 短视频滑动播放在H5下的实现方式

    短视频滑动播放在H5下的实现方式
    这里给大家分享我在网上总结出来的一些知识,希望对大家有所帮助 短视频已经无数不在了,但是主体还是使用 app 来承载的。本文讲述
  • HTML5页面打开微信小程序功能实现

    HTML5页面打开微信小程序功能实现
    微信终于支持由页面跳转至小程序啦 ~ 步骤一:绑定域名 登录微信公众平台进入公众号设置的功能设置里填写JS接口安全域名。 步骤二:引
  • html5+实现plus.io进行拍照和图片等获取
    使用Hbuilder开发工具开发:实现可对Android机进行控制和获取资源 说明:IO模块管理本地文件系统,用于对文件系统的目录浏览、文件的读取
  • HTML标签实现带动画的抖音LOGO效果

    HTML标签实现带动画的抖音LOGO效果
    先上结果,最终实现效果如下: 还原度应该还可以吧? 抖音Logo结构 想要用CSS来画抖音的Logo,前提要先了解它的构造,一定是一些几何图形
  • video.js支持m3u8格式直播的实现教程

    video.js支持m3u8格式直播的实现教程
    为什么要使用video.js? 1. PC端浏览器并不支持video直接播放m3u8格式的视频 2. 手机端各式各样的浏览器定制的video界面风格不统一,直接写原生
  • html5调用摄像头截图功能的介绍
    关于html5调用音视频等多媒体硬件的API已经很成熟,不过一直找不到机会把这些硬件转化为实际的应用场景,不过近年来随着iot和AI的浪潮,
  • 前端监听websocket消息并实时弹出的代码实例介绍

    前端监听websocket消息并实时弹出的代码实例介绍
    本文默认您已掌握react生态开发的相关技术,并熟练应用umiJS的原则上,请继续! 项目需求: 1、服务侧推送给消息给前端,前端需要展示在
  • 本站所有内容来源于互联网或用户自行发布,本站仅提供信息存储空间服务,不拥有版权,不承担法律责任。如有侵犯您的权益,请您联系站长处理!
  • Copyright © 2017-2022 F11.CN All Rights Reserved. F11站长开发者网 版权所有 | 苏ICP备2022031554号-1 | 51LA统计