Skip to Content
JavaScript 经典实例:第三版
book

JavaScript 经典实例:第三版

by Adam D. Scott, Matthew MacDonald, Shelley Powers
September 2022
Intermediate to advanced
585 pages
8h 17m
Chinese
China Electric Power Press Ltd.
Content preview from JavaScript 经典实例:第三版
异步编程
255
9.6.4
参考
6.7
节说明如何创建非异步生成器。
9.5
节说明如何创建常规的异步函数。
9.7
使用
Web
职程执行后台任务
9.7.1
问题
你想在单独的线程中执行长时间运行的代码,以免阻塞用户界面。
9.7.2
方案
使用
Web Worker API
。创建一个
Worker
对象,所有代码都在后台线程中运行。虽
Worker
对象与其他代码是隔离的(例如,不能访问
DOM
、页面或者全局变量),
但是可以通过收发消息与它通信。
9-1
中的示例页面计算指定范围内的所有素数。由于这个页面使用了
Web
职程,
因此在计算过程中,界面仍有反应。例如,我们还可以在文本框中输入内容,也可
以点击“
Cancel
”(取消)按钮。
Start
”(开始)按钮触发一个名
startSearch()
的函数。该函数新建一个职
程,依附函数处理
Worker.error
Worker.message
事件,最后调用
Worker.
postMessage()
,开始操作。
这个网页中相关的脚本代码如下所示。
//
留有职程的引用,以防需要取消
let
worker;
function
startSearch() {
//
创建职程
worker =
new
Worker('prime-worker.js');
const
statusDisplay = document.getElementById('status');
statusDisplay.textContent = 'Search started.';
256
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.

Read now

Unlock full access

More than 5,000 organizations count on O’Reilly

AirBnbBlueOriginElectronic ArtsHomeDepotNasdaqRakutenTata Consultancy Services

QuotationMarkO’Reilly covers everything we've got, with content to help us build a world-class technology community, upgrade the capabilities and competencies of our teams, and improve overall team performance as well as their engagement.
Julian F.
Head of Cybersecurity
QuotationMarkI wanted to learn C and C++, but it didn't click for me until I picked up an O'Reilly book. When I went on the O’Reilly platform, I was astonished to find all the books there, plus live events and sandboxes so you could play around with the technology.
Addison B.
Field Engineer
QuotationMarkI’ve been on the O’Reilly platform for more than eight years. I use a couple of learning platforms, but I'm on O'Reilly more than anybody else. When you're there, you start learning. I'm never disappointed.
Amir M.
Data Platform Tech Lead
QuotationMarkI'm always learning. So when I got on to O'Reilly, I was like a kid in a candy store. There are playlists. There are answers. There's on-demand training. It's worth its weight in gold, in terms of what it allows me to do.
Mark W.
Embedded Software Engineer

You might also like

JavaScript Patterns

JavaScript Patterns

Stoyan Stefanov
JavaScript

JavaScript

David Flanagan
JavaScript

JavaScript

T. J. Crowder

Publisher Resources

ISBN: 9787519869601