工人发展司
目前正在实施DOM API, 打算在网络工人内部运行.
目的: 将与 DOM 突变有关的中间工作的复杂性移动到一个背景线程上,只将必要的操纵发送到一个前景线程上.
使用大小写数字 :
- 嵌入内容来自第三方与一党代码并存.
- 减轻内容的昂贵渲染,无需同步更新用户动作.
- 通过在文档的其他地方同步更新,保留主线程用于高优先级更新.
欲了解更多情况,请访问 博客文章 宣布工人DOM或离职 幻灯片 从美国JSConf的公告.
安装
npm install @ampproject/worker-dom
使用量
WorkerDOM分为两种花序花序花序花序花序花序花序花序花序花序花序花序花序花序花序花序花序花序花序花序花序花序花序花序花序花序花序花序花序花序花序花序花序花序花序花序花序花序花序花序花序花序花序花序花序花序花序花序花序花序花序花序花序花序花序花序花序花序花序花序花序花序花序花序花序花序花序花序花序花序花序花序花序花序花序花序花序花序花序花序花序花序花序花序花序花序花序花序花序花序花序花序花序花序花序花序花序花序花序花序花序花序花序花序花序花序花序花序花序花序花序花序花序花序花序花序花序花序花序花序花序花序花序花序花 可以直接或通过捆绑器将WorkerDOM主线程代码包含在文档中. 这是你如何直接做到这一点:
<script src="path/to/workerdom/dist/main.mjs" type="module"></script>
<script src="path/to/workerdom/dist/main.js" nomodule defer></script>
工人DOM允许我们升级文件的特定部分,由工人驱动. 比如说,想象一下 div 页面中的节点类似:
<div src="hello-world.js" id="upgrade-me"></div>
要使用该代码的模块版本升级此节点, 我们可以直接导入 upgradeElement 像这样使用它:
<script type="module">
import {upgradeElement} from './dist/main.mjs';
upgradeElement(document.getElementById('upgrade-me'), './dist/worker/worker.mjs');
</script>
节点格式显示全局 MainThread,并可以升级 div 以下列方式:
<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
本地化运行
克隆了寄存器后,可以尝试使用以下调试演示.
npm run demo
此脚本将构建当前版本的 WorkerDOM 并启动本地 网络服务器。 。 。 .
我能用哪个JavaScript API?
目前,大多数DOM元素及其属性都得到了支持. DOM 查询 API 喜欢 querySelector 获得部分支持。 浏览器类似历史的 API 尚未执行 。 请参见 API 支持矩阵 这里。 。 。 .
支持哪些浏览器 ?
总的来说,我们支持Chrome、Firefox、Edge、Safari、Opera和UC等主要浏览器的最新两个版本。 我们支持桌面、电话、平板电脑和这些浏览器的网页视图版本.
除此之外,我们的目标是非常广泛的浏览器支持, 我们接受所有市场份额超过1%的浏览器的修复.
特别是,我们试图维持"它可能并不完美,但是没有被打破"-支持IE 11,iOS 8,Android 4.0系统浏览器和Chrome 41.
地方发展
地方发展工人发展组织假定如下:
- 熟悉情况
npm或者说yarn - LTS最新发布"节点"(撰写时为10个).
- 与TypeScript的舒适,代码库和测试完全用TypeScript来写.
发布日志
每次发布都包含一个随着新发布的版本而变化的日志. 您可以在这里找到日志 : https://github.com/ampproject/worker-dom/放行 互联网档案馆的存檔,存档日期2013-12-02
安全披露
AMP项目通过 Google 应用程序安全程序。 。 。 .
行为守则
AMP项目努力建立一个积极和不断发展的项目社区,为每个人提供安全的环境。 要求社区内的所有成员、承诺者和志愿者按照 行为守则。 。 。 .
许可证
根据《劳动法》,工人拥有许可证 Apache 许可证,2.0版本。 。 。 .