10 月份完成
以下是 10 月份对 代码、数据和工具 的更新,这些更新支持 MDN Web 文档
- 已发布的性能改进
- 将 MDN 迁移至 MozIT
- 已发布的调整和修复 通过合并 352 个拉取请求,其中包括来自 62 位新贡献者的 78 个拉取请求。
以下是 11 月份的计划
我们发布了一些旨在改进 MDN 页面加载时间的更改。效果并不像我们希望的那样显著。
已发布的性能改进
我们的侧边栏(例如 <summary> 上的“相关主题”侧边栏)使用“mozToggler”JavaScript 方法来实现展开和折叠部分。这使用 jQueryUI 的切换效果,并在加载时动态应用。 Tim Kadlec 用 <details> 元素 (KumaScript PR 789 和 Kuma PR 4957) 替换了它,该元素在语义上对展开和折叠部分进行建模。<details>
元素受大多数当前浏览器支持,最显著的例外是 Microsoft Edge,它通过一个 polyfill 支持。
<details>
更新于 10 月 4 日发布,并重新生成了带有侧边栏的 31,000 个页面以应用更改。
第二个更改旨在减少 Web 字体 的使用,Web 字体必须下载,并会导致页面重新绘制。一些浏览器(如 Firefox Focus)默认情况下会阻止 Web 字体,以提高性能和节省带宽。
一种策略是完全消除 Web 字体。我们在 9 月份 (PR 4967) 将 OpenSans 替换为内置的 Verdana 作为正文字体,然后在 10 月 22 日 (PR 5023) 再次替换为 Arial。我们还用内联 SVG (PR 4969 和 PR 5053) 替换了使用 Web 字体的 Font Awesome。我们预计将在 11 月完成 SVG 工作。
第二种策略是减少 Web 字体的尺寸。随着 2017 年 6 月 的重新设计,推出的自定义 Zilla 字体已缩减至标准英文字符,在 10 月 10 日 (PR 5024) 将文件尺寸减少了一半。
这些更改已对总下载大小和渲染时间产生了影响,并且我们正在看到 合成指标 的改进。但是,对于 MDN 用户来说,在页面加载时间方面 没有显著变化。在 11 月,我们将尝试一些更激进的实验来了解更多关于页面加载时间组成部分的信息。

SpeedCurve 合成测量显示出稳定的改进,但尚未达到目标。
将 MDN 迁移至 MozIT
Ryan Johnson、Ed Lim 和 Dave Parfitt 在 10 月 29 日将生产流量从营销服务器切换到 IT 服务器。网站处于只读模式,因此所有内容在过渡期间均可用。出现了一些小问题,主要是在 Amazon 的弹性文件系统 (EFS) 的 API 预算耗尽时,但我们在维护窗口内处理了这些问题。

“Maisenbacher House Moving 8” by Katherine Johnson, CC BY 2.0
在过渡前的几周里,团队测试了部署、更新了文档并检查了数据传输流程。他们创建了一个任务和分配列表,详细说明了迁移流程,并规划了过渡后的清理工作。团队对细节的关注和持续的沟通使 MDN 用户顺利过渡,没有停机或错误。
MozIT 集群与之前的 MozMEAO 集群非常相似。从 2017 年 10 月 10 日发布的 技术概述 仍然是对 MDN 部署方式的一个不错的指南。
有一些变化,大多数变化是 MDN 用户不会注意到的。我们现在将图像托管在 Docker Hub 而不是 quay.io 中。MozMEAO 集群运行着 Kubernetes 1.7,新的 MozIT 集群运行着 1.9。这可能是更可靠的 DNS 查找的原因,避免了连接到数据库或其他 AWS 服务时偶尔出现的问题。
在 11 月,我们将继续监控新服务器,并关闭 MozMEAO 帐户中的冗余服务。然后,我们将重新评估年初的计划,并优先考虑下一个基础架构更新。首要任务是可靠的验收测试和跨多个 AWS 区域的部署。
已发布的调整和修复
10 月份合并了 352 个 PR。
- 127 个 mdn/browser-compat-data PR
- 48 个 mozilla/kuma PR
- 45 个 mdn/kumascript PR
- 39 个 mdn/interactive-examples PR
- 32 个 mdn/infra PR
- 25 个 mdn/bob PR
- 10 个 mdn/webaudio-examples PR
- 6 个 mdn/data PR
- 4 个 mdn/ansible-jenkins PR
- 2 个 mdn/web-components-examples PR
- 2 个 mdn/css-examples PR
- 2 个 mdn/imsc PR
- 2 个 mdn/short-descriptions PR
- 1 个 mdn/django-locallibrary-tutorial PR
- 1 个 mdn/learning-area PR
- 1 个 mdn/webextensions-examples PR
- 1 个 mdn/web-tech-games PR
- 1 个 mdn/pwa-examples PR
- 1 个 mdn/fibonacci-worker PR
- 1 个 mdn/sprints PR
- 1 个 mdn/express-locallibrary-tutorial PR
这包括一些重要的更改和修复
- 修复诸如 #Using_thisArg (Kuma PR 4954) 之类的锚点链接,来自 Schalk Neethling。
- 添加宽松的 内容安全策略 (CSP) (Kuma PR 5002),来自 我。
- 优先使用
.blockIndicator
来设置块指示符的样式 (KumaScript PR 830),这是对标准化 指示符 的一系列更改的一部分,来自 ExE Boss。 - 删除
localize
宏 (KumaScript PR 897),来自 wbamberg,这是在 宏大屠杀 中删除的 25 个宏之一。 - 步进音序器演示 (webaudio-examples PR 13),这是来自 Ruth John 的 几个音频演示 之一。
78 个拉取请求来自首次贡献者
- 添加 MS Edge 对
SubtleCrypto
的支持的详细信息 (BCD PR 2738),来自 Wim L。 - 添加对 CSS 属性
-moz-image-region
的支持 (BCD PR 2853),来自 Shivam Singhal。 - 添加 CSS 属性
scroll-snap-type
的浏览器版本 (BCD PR 2867),来自 Chris Bitsakis。 - 添加
overflow-clip-box-*
、-moz-user-focus
和 (-moz-
)user-modify
的数据 (PR 2868),添加许多非标准 CSS 属性/选择器的数据 (PR 2874),以及来自 Vinyl Darkscratch 对 BCD 的 11 个更多 PR。 - 添加 Edge 对
Intl
的支持 (BCD PR 2882),来自 Jack Horton。 - 添加 Edge 18 和支持的功能 (BCD PR 2907),来自 Merih Akar。
- 修复拼写错误(“performace.now()” 到 “performance.now()”)(BCD PR 2914),来自 Merlin Luntke。
- 更新以扩展 3.0.2 (BCD PR 2916),来自 Jonathan Felchlin。
- 更新 Firefox 支持的
<iframe sandbox>
属性 (BCD PR 2919),来自 Dan Callahan。 - 修复拼写错误并链接到 MDN 上的 功能 (BCD PR 2930),来自 Andreas Tolfsen。
- 添加 Edge Mobile 对
<input type=date>
的支持 (BCD PR 2932),来自 Jeff Powell。 - 添加 IE 对
HTMLHyperlinkElementUtils.pathname
的部分支持 (BCD PR 2934),来自 wizzwizz4。 - 为 Firefox 57 添加
MediaPlayPause
支持(BCD PR 2936),来自 Carlin Scott。 - 添加注释,指出 IE 不支持 SVG 元素的
Node.contains
(BCD PR 2942),来自 Pascal Duez。 - 添加 Firefox 59 中
Origin
头部更改的说明(BCD PR 2943),来自 Théophile Helleboid – chtitux。 - 添加 Chromium 和 Opera 中
FontFaceSet
API 的支持详细信息(BCD PR 2948),来自 Gerhard Preuss。 - 更新 IE 对
window.scrollBy
的支持(BCD PR 2975),来自 Mathieu Lemoine。 - 添加 Safari 11.1 对
CacheStorage
API 的支持(BCD PR 2976),来自 Jianrong Yu。 - 更新 Chrome 和 Opera 对
MediaRecorder
的支持(PR 2977),更新 Chrome 和 Opera 中Selection
的支持(PR 3032),以及更新ImageBitmap
API 的支持(PR 3033),来自 Xiaoru Li。 - 将 Edge 17 更改为对
fieldset
disabled
属性的部分支持(PR 2978),并将 IE 9 更改为对box-shadow
inset
的部分支持(PR 2996),来自 Bart Groeneveld。 - 添加注释,指出 Edge 对
CustomElements
和ShadowDOM
的支持正在开发中(BCD PR 2982),来自 Jim Montgomery。 - 添加浏览器对 CSS
all
的支持详细信息(BCD PR 2986),来自 Pier Bover。 - 添加支持
FormData
方法的 Safari 版本(BCD PR 2988),来自 Rouven Bühlmann。 - 移除 Edge 对
::cue selector
的支持(BCD PR 2998),来自 Clement Allen。 - 添加 Android WebView 61 对 JavaScript
import
的支持(BCD PR 3001),来自 happy-monk。 - 添加 IE 和 Safari 对
document.createComment
的支持(BCD PR 3003),来自 Giordano Ricci。 - 添加 Edge 12 对
Element.scrollIntoView
的支持(BCD PR 3006),来自 Michel Plungjan。 - 添加对 CSS 属性
block-size
和inline-size
的支持(BCD PR 3012),来自 cartinez。 - 添加 Edge 18 对
Promise.finally
的支持(BCD PR 3013),来自 Pedro Barbiero。 - 添加 Chrome 69 对
OffscreenCanvas
的支持,无需任何标志(PR 3017),以及添加 Chrome 69 对transferControlToOffscreen
的支持,无需任何标志(PR 3019),来自 SMUsamaShah。 - 添加 Edge 15 对 Brotli 压缩的支持(BCD PR 3023),来自 Jacob Stamm。
- 移除 Safari 对
Element.animate
的支持(BCD PR 3028),来自 Jérémy Thulliez。 - 修复 Firefox 中
WebGL
的替代名称(BCD PR 3029),来自 Anis Ladram。 - 添加 Safari 7 对
document.createComment
的支持(BCD PR 3037),来自 Ben Keith。 - 为社交图标添加可访问文本(PR 5000),来自 Hidde de Vries(对 Kuma 的首次贡献)。
- 从屏幕阅读器中隐藏代码行号(PR 5047),来自 arai-a(对 Kuma 的首次贡献)。
- 修复没有目录的页面的哈希链接(Kuma PR 5057),来自 urty5656。
- 将 Stripe 客户 ID 添加到 MDN 用户记录中(Kuma PR 5059),来自 Michal Macioszczyk。
- 更新侧边栏以使用 details/summary(PR 789),来自 tkadlec(对 KumaScript 的首次贡献)。
- 更改兼容性表中供应商前缀说明的措辞(PR 806),来自 Connor Shea(对 KumaScript 的首次贡献)。
- 从侧边栏中移除轻量级主题。(PR 965),来自 Irene Smith(对 KumaScript 的首次贡献)。
- 使用
+=
代替a = a + x
(PR 1171),来自现已 删除的用户(对交互式示例的首次贡献)。 - 添加从
<h1>
到<h6>
的标题示例(交互式示例 PR 1180),来自 Tremaine Neethling。 - 更新 JavaScript
Object.entries
示例(交互式示例 PR 1182),来自 Raju Gautam。 - 使用模板字符串以提高可读性(交互式示例 PR 1187),来自 Flying-Toast。
- 在 HTML 属性示例中添加“attribute-”前缀(交互式示例 PR 1189),来自 Dimitri Belopopsky。
- 修复
String.normalize
实时示例中的错误(交互式示例 PR 1193),来自 Eugene Dzhumak。 - 使用一致的空格,切换到箭头函数,并解决其他细微问题(webaudio-examples PR 20),来自 Stoyan。
- 添加
:blank
CSS 选择器数据(PR 298),来自 Michal Čaplygin(对数据的首次贡献)。 - 更正观察到的属性列表(web-components-examples PR 10),来自 LordRegentTB。
- 改进 edit-word 演示(web-components-examples PR 11),来自 Jan Murmann。
- 从
@counter-style
演示中移除有关 Firefox 33 的警告(css-examples PR 10),来自 Razvan Caliman。 - 添加用于实时预览的最小
ttml
示例(imsc PR 3),来自 Andreas Tai。 - 添加内联样式示例(imsc PR 4),来自 Pierre-Anthony Lemieux。
- 添加初始许可信息(PR 1),来自 Daniel D. Beck(对 short-descriptions 的首次贡献)。
- 添加 CSS 简短说明的指南(PR 3),来自 wbamberg(对 short-descriptions 的首次贡献)。
- 将
var
更新为let
(learning-area PR 106),来自 Lisa Tidball。 - 使网站响应式(web-tech-games PR 2),来自 Purushottam Sharma。
- 减小 A2HS 演示的图像尺寸(pwa-examples PR 9),来自 Nemo。
- 将
var
关键字更改为let
(fibonacci-worker PR 3),来自 Varsha Chahal。 - 添加自定义问题模板以替换 Bugzilla 文档请求(PR 505),来自 Janet Swisher(对 sprints 的首次贡献)。
- 添加身份验证和基于角色的授权(express-locallibrary-tutorial PR 54),来自 Caglar Turali。
计划于 11 月
我们将继续进行性能实验,例如移除 Font Awesome 和寻找新的降低页面加载时间的方法。我们将继续进行正在进行的项目,例如迁移和更新浏览器兼容性数据以及发布更多 HTML 示例,比如关于 <input> 的示例。
发布定期付款
在 10 月,我们发布了 一种新的支持 MDN 的方法,即一次性付款。在 11 月,我们将再次与 Potato London 合作,为 MDN 添加月度付款选项。
有兴趣为 MDN 做贡献?不要错过 在 MDN 上入门 或直接加入 Kuma 仓库 开始贡献代码。
如果您刚开始,请查看 MDN wiki 页面以了解新贡献者或查看
关于 John Whitlock
John 是一位网络开发人员,负责 MDN Web Docs 的引擎开发工作。
5 条评论