# @ampproject/worker-dom 中文文档

规范地址：https://npmcn.com/package/%40ampproject/worker-dom/

版本：0\.36\.0
npm 元数据更新时间：2025-06-27T22:45:43.179Z
中文译文更新时间：2026-11-06T01:40:36.149Z
软件包许可：Apache-2\.0

本文由上游 README 翻译，可能存在偏差，请结合原文核对 API、命令与配置。版权与许可归原作者所有。

原始 npm 页面：https://www.npmjs.com/package/%40ampproject/worker-dom
原文对照：https://npmcn.com/package/%40ampproject/worker-dom/?lang=original
项目主页：https://github.com/ampproject/worker-dom#readme
源码仓库：https://github.com/ampproject/worker-dom

## 关键信息（来自 npm 元数据）

- 包体积（解压后）：5.4 MB，41 个文件
- 模块格式：ES Module
- TypeScript 类型：未声明
- Node.js 要求：\>=18
- 运行依赖：0 个
- 首次发布：2018-08-21T21:25:31.249Z
- 最新版本发布：2025-06-27T22:45:42.774Z
- 近 30 天下载量：7976（2026-10-06 至 2026-11-04，npm 官方下载统计）
- 已发布版本数：71（近 12 个月 0 个）

## 中文简介

一份现代DOM执行的传真,打算用网络工人操作.

## 安装

```sh
npm install @ampproject/worker-dom
```

也可以使用：`pnpm add @ampproject/worker-dom`、`yarn add @ampproject/worker-dom`、`bun add @ampproject/worker-dom`

## README

# 工人发展司

目前正在实施DOM API, 打算在网络工人内部运行.

**目的**: 将与 DOM 突变有关的中间工作的复杂性移动到一个背景线程上,只将必要的操纵发送到一个前景线程上.

**使用大小写**数字 :

1.  嵌入内容来自第三方与一党代码并存.
2.  减轻内容的昂贵渲染,无需同步更新用户动作.
3.  通过在文档的其他地方同步更新,保留主线程用于高优先级更新.

欲了解更多情况,请访问 [博客文章](https://bit.ly/worker-dom-blog) 宣布工人DOM或离职 [幻灯片](https://bit.ly/worker-dom-slides) 从美国JSConf的公告.

## 安装

```bash
npm install @ampproject/worker-dom
```

## 使用量

WorkerDOM分为两种花序花序花序花序花序花序花序花序花序花序花序花序花序花序花序花序花序花序花序花序花序花序花序花序花序花序花序花序花序花序花序花序花序花序花序花序花序花序花序花序花序花序花序花序花序花序花序花序花序花序花序花序花序花序花序花序花序花序花序花序花序花序花序花序花序花序花序花序花序花序花序花序花序花序花序花序花序花序花序花序花序花序花序花序花序花序花序花序花序花序花序花序花序花序花序花序花序花序花序花序花序花序花序花序花序花序花序花序花序花序花序花序花序花序花序花序花序花序花序花序花序花序花序花序花 可以直接或通过捆绑器将WorkerDOM主线程代码包含在文档中. 这是你如何直接做到这一点:

```html
<script src="path/to/workerdom/dist/main.mjs" type="module"></script>
<script src="path/to/workerdom/dist/main.js" nomodule defer></script>
```

工人DOM允许我们升级文件的特定部分,由工人驱动. 比如说,想象一下 `div` 页面中的节点类似:

```html
<div src="hello-world.js" id="upgrade-me"></div>
```

要使用该代码的模块版本升级此节点, 我们可以直接导入 `upgradeElement` 像这样使用它:

```html
<script type="module">
  import {upgradeElement} from './dist/main.mjs';
  upgradeElement(document.getElementById('upgrade-me'), './dist/worker/worker.mjs');
</script>
```

节点格式显示全局 `MainThread`,并可以升级 `div` 以下列方式:

```html
<script nomodule async=false defer>
  document.addEventListener('DOMContentLoaded', function() {
    MainThread.upgradeElement(document.getElementById('upgrade-me'), './dist/worker/worker.js');
  }, false);
</script>
```

### AMP 分发 `amp-script`

工人DOM有一个特殊的输出变体,为安全特性提供额外的钩子,例如HTML sanitization. 此变体在 AMP 文件夹下为主线程和工人线程二进制分发 :

```
amp/main.mjs
amp/worker/worker.mjs
```

这个输出假设消费者会编译这个分布式的JavaScript,以确保它与更古老的 `user-agent`编号.

### 除错分发

WorkerDOM还有一个输出变体,包括额外的调试消息. 此变体分布在调试文件夹中.

```
debug/main.mjs
debug/main.js
debug/worker/worker.mjs
debug/worker/worker.js
```

## 本地化运行

克隆了寄存器后,可以尝试使用以下调试演示.

```bash
npm run demo
```

此脚本将构建当前版本的 WorkerDOM 并启动本地 [网络服务器](http://localhost:3001/)。 。 。 .

## 我能用哪个JavaScript API?

目前,大多数DOM元素及其属性都得到了支持. DOM 查询 API 喜欢 `querySelector` 获得部分支持。 浏览器类似历史的 API 尚未执行 。 请参见 API 支持矩阵 [这里](https://npmcn.com/package/%40ampproject/worker-dom/web_compat_table.md)。 。 。 .

## 支持哪些浏览器 ?

总的来说,我们支持Chrome、Firefox、Edge、Safari、Opera和UC等主要浏览器的最新两个版本。 我们支持桌面、电话、平板电脑和这些浏览器的网页视图版本.

除此之外,我们的目标是非常广泛的浏览器支持, 我们接受所有市场份额超过1%的浏览器的修复.

特别是,我们试图维持"它可能并不完美,但是没有被打破"-支持IE 11,iOS 8,Android 4.0系统浏览器和Chrome 41.

## 地方发展

地方发展工人发展组织假定如下:

1.  熟悉情况 `npm` 或者说 `yarn`
2.  LTS最新发布"节点"(撰写时为10个).
3.  与TypeScript的舒适,代码库和测试完全用TypeScript来写.

## 发布日志

每次发布都包含一个随着新发布的版本而变化的日志. 您可以在这里找到日志 : [https://github.com/ampproject/worker-dom/放行 互联网档案馆的存檔,存档日期2013-12-02](https://github.com/ampproject/worker-dom/releases)

## 安全披露

AMP项目通过 [Google 应用程序安全程序](https://www.google.com/about/appsecurity/)。 。 。 .

## 行为守则

AMP项目努力建立一个积极和不断发展的项目社区,为每个人提供安全的环境。 要求社区内的所有成员、承诺者和志愿者按照 [行为守则](https://npmcn.com/package/%40ampproject/worker-dom/CODE_OF_CONDUCT.md)。 。 。 .

## 许可证

根据《劳动法》,工人拥有许可证 [Apache 许可证,2.0版本](https://npmcn.com/package/%40ampproject/worker-dom/LICENSE)。 。 。 .

## 常见问题

### @ampproject/worker-dom 是什么？

一份现代DOM执行的传真,打算用网络工人操作\.

### 如何安装 @ampproject/worker-dom？

在项目目录运行 npm install @ampproject/worker-dom，或使用 pnpm add / yarn add / bun add。

### @ampproject/worker-dom 支持 TypeScript 吗？

该包的 package\.json 没有声明类型入口。需要类型提示时，可以在 npm 上查找社区维护的 @types/ampproject\_\_worker-dom 是否存在。

### @ampproject/worker-dom 支持 ESM 还是 CommonJS？

以 ES Module 形式发布，推荐使用 import 引入。在 CommonJS 项目中，Node\.js 20\.19\+ / 22\.12\+ 可以直接 require\(\) 不含顶层 await 的 ES Module，更早的版本需要改用动态 import\(\)。

### @ampproject/worker-dom 需要什么版本的 Node\.js？

package\.json 的 engines 字段要求 Node\.js \>=18。版本不符时 npm 默认只给出警告，开启 engine-strict 后会拒绝安装。

### @ampproject/worker-dom 可以商用吗？

@ampproject/worker-dom 使用 Apache-2\.0 许可。宽松许可：允许商业使用、修改和再分发，并附带明确的专利授权；分发时需保留许可与 NOTICE 文件，修改过的文件要注明改动。以上为概括，不构成法律意见，请以许可原文为准。

### @ampproject/worker-dom 的下载量有多少？

根据 npm 官方下载统计，@ampproject/worker-dom 在 2026/10/06 – 2026/11/04 这 30 天内被下载 7,976 次，日均约 266 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入，适合横向比较热度，不能直接等同于使用人数。

### @ampproject/worker-dom 还在维护吗？

最新版本 0\.36\.0 发布于 2025/06/28（1\.4 年前）；至今共发布 71 个版本，其中过去 12 个月发布了 0 个；首次发布于 2018/08/22。发布频率只是参考信号：功能稳定的工具可能很少需要更新，建议结合源码仓库的 issue 和提交记录判断。

