MDN 2024技术文档更新全景:MathML、Web应用清单与HTTP协议深度优化

本文详细介绍了MDN在2024年对MathML数学标记语言、Web应用清单和HTTP协议文档的全面更新,包括新增元素文档、实时示例、浏览器兼容性数据完善,以及协议指南的现代化改进。

MDN 2024内容项目

MDN Web Docs为从入门到专业级的Web开发者提供准确易用的资源。我们的承诺包括维护长期存在的内容和记录Web平台的全新功能。2024年,MDN内容团队选择了一些内容领域进行审核和更新,以在不断发展的Web平台中保持其实用性和相关性。我们重点关注那些受欢迎但包含过时或不完整材料的主题,并投入时间进行改进、补充和删除过时内容。本文回顾了我们在2024年内容项目中取得的成就,重点介绍了一些精选内容和推荐阅读,并展望了MDN在2025年的计划。

2024 MDN内容领域

2024年,我们选择了三个技术类别,这些类别很受欢迎,但读者反馈表明需要更新。我们专注于HTTP、MathML和Web应用清单。从2024年7月到12月,团队在这些领域进行了工作,以多种方式提升质量。下面我们来看看每个部分的变化。

MathML

MathML是一种基于XML的语言,用于在Web上描述数学符号。与SVG类似,MathML也可以包含在HTML中并由浏览器渲染,无需插件或库。

与经常分组元素的MathML核心规范不同,MDN现在为每个MathML元素提供了单独的页面,包含示例、使用说明和现已更新的BCD(浏览器兼容性数据)。例如,您可以阅读<semantics><annotation><annotation-xml>元素,以及它们如何帮助注释MathML表达式。

就像我们使用Markdown而不是HTML编写这篇博客文章一样,MathML通常由数学处理器使用轻量级标记语言(如LaTeX)生成。为了帮助内容作者,所有MathML示例现在都有注释。例如,x^{2} + y可以在LaTeX中写成x^{2} + y

这还将允许我们未来开始使用LaTeX for MathML,使内容作者更容易编写和维护示例。为了充分体会差异,您可以比较一些较大示例的完整MathML源代码,如“推导二次公式”和“证明勾股定理”,与它们的LaTeX等效版本。

MDN上的MathML文档现在为所有元素提供了无障碍功能信息。例如,使用<math>元素表示数学内容允许屏幕阅读器读取公式,这使得MathML在这些情况下比使用图像或其他格式更好。

此外,所有MathML功能现在都有实时示例,因此您可以看到它们如何在浏览器中渲染。就像MDN上的其他实时示例一样,您可以随时点击右上角的“播放”按钮在新标签页中调试代码。

MathML不仅在MDN上有文档记录,还用于描述Web平台的不同部分。例如,Set.difference() JavaScript方法、CSS变换函数、游戏开发中的3D碰撞检测、WebXR设备API等等。

我们确保MathML现在在整个MDN中正确渲染:在段落内和块级,在大屏幕和小屏幕上,以及在不同浏览器中。

Manifest(Web应用清单)

Web应用清单是一个JSON文本文件,提供关于Web应用程序的信息。清单最常见的用途是提供浏览器在设备上安装渐进式Web应用(PWA)所需的信息,例如应用的名称和图标。

对于清单内容更新,Dipika与Firefox工程师Jonathan Almeida合作,更新了Firefox中清单成员的浏览器兼容性数据。清单BCD添加现在涵盖了Firefox和Firefox for Android的兼容数据,确保准确和最新的支持信息。MDN、Can I use和其他网站上的读者现在有了关于跨浏览器清单支持的可靠指导。

在内容方面,该部分进行了多项改进,包括散文、布局和模板修复。页面模板现在得到了改进,以提高整个部分的可读性和一致性。对于每个成员值(例如,“display”: “standalone”),都有适当的散文描述,以及可能使用该值的示例场景。使用说明收集到一个专门的“描述”部分,并且规范中提到的任何注意事项,如果未在MDN页面中记录,现在都已记录。

一些页面完全缺少“语法”部分,因此现在这些空白已被填补,以便读者更好地理解如何使用记录的功能和一些可能的成员值:

这次更新确保现有内容更全面和可读,还包括对类似功能的引用,这为开发人员提供了更多的灵活性。例如,在HTML中使用prefers-color-scheme为浅色和深色模式设置不同的theme_color值:

HTTP内容更新

HTTP是Web上数据交换的基础协议。它允许浏览器和服务器之间的通信,但也可用于机器对机器通信、自动化访问API等。在MDN上,HTTP部分有超过300页的参考材料,大多数页面是关于HTTP头部和响应状态码。

响应状态码让客户端知道HTTP请求的结果(如200、404),并在某些情况下提供一些额外的上下文。MDN上记录了61个状态码,包括常见响应的示例和Web开发人员可能不常遇到的稀有类型的澄清。您甚至可以确保熟悉418(我是茶壶)状态码。

MDN上记录了148个HTTP头部。HTTP头部是HTTP消息的一部分,携带元数据、关于客户端或服务器的信息、收件人的指令等。一些头部有几个子页面,描述了您可以通过头部控制的机制,例如内容安全策略(CSP)指令,指示浏览器限制组成站点的代码可以运行的内容,以及权限策略指令,用于请求使用浏览器功能(如位置或麦克风访问)的权限。

HTTP指南概述了协议的工作原理,描述了从HTTP/0.9到当前版本的协议演变。我们记录了控制HTTP交互的不同方式,如缓存和条件请求,并且我们有关于如何为初学者使用和理解协议的指南,一直到更复杂的主题。这些指南的更新很多意味着在讨论消息格式时减少对HTTP/1.1的具体引用,因为HTTP/2和HTTP/3越来越常见。

总结一下,我们在整个HTTP部分所做的更改包括添加缺失或太短而无用的示例,删除过时或废弃的信息,并使所有页面的格式和呈现保持一致。

MDN上的HTTP亮点

更新的一部分包括更新和添加解释客户端-服务器交换的序列图。我们发现mermaid语法对于许多这类图表很有用,因为它使得存储我们以后可能需要更新的图像源更容易。这些图像存储在shared-assets仓库中,这允许我们重用图像而不是在源中复制它们,并且这些图像更容易编写、阅读、维护,而且看起来也很不错:

从HTTP部分的一个有趣选择是Server-Timing响应头部,您可以使用它将服务器指标暴露给客户端:

根据请求的类型,您可以决定是否要将服务器计时发送给客户端,这些在大多数浏览器的开发者工具的网络请求详细信息面板中可见。例如,BBC iPlayer使用Server-Timing头部发送关于服务的性能指标,在Network > Timings面板下可见。如果您觉得这有趣,请务必查看Performance API和Web性能文档。

对于HTTP部分,大多数BCD更新涉及提高现有条目的准确性和添加缺失的头部兼容数据。添加包括用于记录服务工作者脚本请求的Service-Worker请求头部和用于WebSocket握手的Sec-Websocket-*头部。大多数HTTP更新是针对旧功能的,但支持信息的准确性对于开发人员决定构建什么至关重要。一个例子是Trailer兼容性细节,现在反映了浏览器实现。避免兼容性表中的误导信息很重要,因为它们可能会鼓励人们在他们的应用程序中开发功能,而这些功能在现实中浏览器支持较差。

2024年MDN上的其他内容亮点

以下是2024年落地的一些有趣文档精选:

  • 新!CSS锚点定位文档
  • 新!使用视图过渡API指南

除了参考文档,我们在MDN博客上写了关于这些主题的文章:

  • 使用Intl.Segmenter在JavaScript中进行区域敏感文本分割
  • 使用HTML <details>元素创建独占手风琴
  • 新的JavaScript Set方法
  • 使用页面可见性API
  • Interop 2023:MDN更新
  • 创建有效的技术文档

我们还博客了这些变化和发布:

  • MDN上的新学习体验,将MDN课程合并到学习Web开发中。
  • 介绍MDN HTTP Observatory用于测试服务器HTTP头部配置。
  • 当然,我们有一个新的社区页面,我们很高兴分享!

面向开发者的Firefox发布说明

Firefox发布说明描述了日常浏览器用户的更改。MDN团队为每个Firefox发布记录面向开发者的发布说明。这意味着在2024年,Firefox版本122到133都有页面描述开发者可以针对的每个Firefox发布的更改。您可以在面向开发者的Firefox发布说明页面中找到所有内容。您可能不知道的是,我们还记录了Firefox中的实验性功能。此页面描述了在Firefox中实现的功能,这些功能仅在偏好设置后可用(通过配置)。您可以在功能发布之前测试即将推出的功能,如果您计划使用实验性技术,或者如果您好奇并想在Bugzilla上提供反馈,这是理想的选择。

启动2025

团队参与的内容项目是一次极好的学习体验,我们希望我们的读者从中受益匪浅。如果您想使我们的文档更好,请告诉我们是否有其他部分需要关注,甚至贡献您的专业知识。如果您想学习一个主题,为什么不尝试改进文档呢!通过为MDN做贡献,您可以提高在技术类别中的技能,数百万读者将从中受益。我们很高兴分享,我们在2024年在mdn/content GitHub仓库中看到了以下贡献:

  • 915位不同的作者贡献。
  • 约4300个拉取请求被打开。
  • 约1500个问题被打开。

我们想向2024年贡献的每个人表示衷心的感谢,并希望看到您在2025年继续贡献。我们兴奋地看到的首个较大变化之一是JavaScript Temporal即将到来,支持计划在Firefox 135中落地。有一个由Josh-Cena编写的大规模Temporal拉取请求,这意味着您可以期待很快在MDN上阅读Temporal文档。

我们希望您喜欢这篇文章!随时与我们联系,告诉我们您的想法。

comments powered by Disqus
使用 Hugo 构建
主题 StackJimmy 设计