”工欲善其事,必先利其器。“—孔子《论语.录灵公》
首页 > 编程 > 理解 Web 功能

理解 Web 功能

发布于2024-11-05
浏览:762

Making sense of Web features

网络上有大量的功能。浏览器兼容性数据项目列出了其中 14000 多个!如何理解这一切?

这是一个长期以来没有答案的问题。是的,每个 Web 开发人员都使用 caiuse.com。或者他们用谷歌搜索或者询问chatgpt。问题在于这些工具可以回答特定问题,但缺乏更大的图景或指向事实来源的链接。

WebDX 集团

不再! WebDX 小组现在在网络平台上的组织、分类和命名方面做了令人难以置信的工作(←这是最困难的部分,如您所知)。他们正在尝试以协调的方式改善网络和浏览器的整体开发人员体验。

WebDX 是一个属于 W3C 的社区团体。您可以在他们的存储库中看到他们正在烹饪什么。对我来说最有趣的输出是网络功能存储库。他们所做的是将大量特定功能分类为一组更易于理解的高级功能。

例如,新推出的功能之一是设置方法。任何操作集合的新方法都可以是单个特征。然而,如果将其作为单个高级功能进行交流和记录,它会变得更加有用。

文档

另一部分是如何查找某个功能的详细信息。好吧,这就是开放 Web 文档计划的用武之地。虽然 MDN 一直是一个很好的参考,但一直缺乏实践内容。 Open Web Docs 组织正试图改变这一现状。他们正在为 MDN Web 文档编写大量新教程、指南和解释器,以及基础数据 - BCD(浏览器兼容数据)的更新。

一个例子是 MDN 上关于相对颜色的页面。它清晰地映射到高级 Web 功能。与每个颜色特征的单独参考页面相比,它提供了更好的理解和围绕该特征的上下文。

调查

上述努力的真正好处在于他们真的想要合作。他们从“HTML 状态”和“CSS 状态”等调查中获取输入,然后他们可以使用相同的 Web 功能名称集来跟踪有关它们的调查结果。

顺便说一句,当您填写这些调查时,您可以单击“添加到阅读列表”按钮。它将向您提供 MDN 链接,您可以在其中详细了解您不知道的事情。

现实

很好,但是网络变得更好了吗?天哪,是的!

缩小跨浏览器所需功能和实际可用性之间差距的举措是显而易见的。也就是说,Interop 项目确保在所有主要浏览器中尽可能完整地实现一组功能。该项目每年都会有一个新的迭代。

这些功能的实现程度和实现程度是使用 Web 平台测试来衡量的。针对所有浏览器运行相同的测试集。这就是为什么我们有这些很好的百分比来反映浏览器中功能的实际状态。

基线

某个功能在所有主流浏览器中实现的时刻是一个非常重要的时刻。由于我们已经按照上述方式对功能进行了很好的分组,所以目前唯一缺少的就是名称。现在我们已经看到了:当所有主要浏览器都支持某个功能时,它就是“基线”新功能。一项功能在新推出两年半后就已广泛可用。

您可以在 web.dev 上阅读有关 Baseline 想法的更多信息,因为它是由 Google 发起的。

可视化仪表板

当你能以更直观的方式看待一切时,一切都会变得更有意义。精心设计的表格、图表、方便的资源链接……

这是为了创建有用的仪表板而进行的一些尝试。全部检查一遍,每一个对这个主题都有不同的看法:

  • WebDX 小组背后的人员提供的简单仪表板
  • Google Chrome 团队提供的逐个功能通过网络平台测试的精美图表
  • 以及我尝试创建更具交互性的版本

您可以不时地使用它们来了解一般新内容或广泛采用状态中的新内容。当您开始一个新项目并决定哪些功能集实际可用并得到足够支持时,它也是一个很好的参考。

Making sense of Web features
Web Features Explorer 以简洁的方式显示信息

Making sense of Web features
Webstatus.dev 在图表中显示了通过网络平台测试的功能的实际进展

Making sense of Web features
我的 Web 平台功能仪表板允许过滤和排序功能

未来

一些功能最近很快就在所有浏览器中实现了。但有些浏览器制造商甚至可能认为这不是一个好主意。您可以在以下站点找到有关可能会或可能不会出现的内容的详细信息:

  • Mozilla 标准立场
  • Webkit团队标准职位
  • Google Chrome 功能路线图

结论

观察网络平台的发展是令人着迷的。反馈循环正在改善。许多领域的互操作性正在变得更好。

我长期以来一直想拥有一个具有网络功能的有用仪表板,突然之间,数据的质量如此之好,以至于我在几个晚上内成功构建了自己的仪表板。

版本声明 本文转载于:https://dev.to/lttr/making-sense-of-web-features-lo4?1如有侵犯,请联系[email protected]删除
最新教程 更多>
  • 在 Go 中使用 WebSocket 进行实时通信
    在 Go 中使用 WebSocket 进行实时通信
    构建需要实时更新的应用程序(例如聊天应用程序、实时通知或协作工具)需要比传统 HTTP 更快、更具交互性的通信方法。这就是 WebSockets 发挥作用的地方!今天,我们将探讨如何在 Go 中使用 WebSocket,以便您可以向应用程序添加实时功能。 在这篇文章中,我们将介绍: WebSocke...
    编程 发布于2024-11-19
  • 如何在 Docker Compose 中仅运行一次命令?
    如何在 Docker Compose 中仅运行一次命令?
    在 Docker Compose 中运行一次命令使用 Docker compose 文件时,可能只需要运行一次特定命令,通常是在初始设置期间一个应用程序的。当应用程序依赖于需要初始化的数据库时,就会出现此要求,并且初始化只能在第一次运行时发生。在这种情况下,用户打算执行命令 ./my-project...
    编程 发布于2024-11-19
  • 异步AJAX请求时如何显示加载图片?
    异步AJAX请求时如何显示加载图片?
    在异步请求期间显示加载图像使用 $.ajax 执行异步请求可能会由于缺乏可见的指示而导致混乱正在进行的过程。本文探讨了在此类请求期间显示加载图像的技术。首先,提供的代码片段对 URL 执行异步请求,并将接收到的 HTML 附加到类为“info”的元素。要显示加载图像,可以使用 'id'...
    编程 发布于2024-11-19
  • 代码气味 - 语言混乱
    代码气味 - 语言混乱
    过于复杂的命名会导致混乱 TL;DR:命名很难,不要因为不必要的意外复杂性而让它变得更难。 问题 不清晰、误导性、含糊和不明确的名称 冗余术语 令人困惑的抽象 隐秘缩写 解决方案 简化命名约定 确保一致性 避免不必要的行话 根据行为使用描述性名称 保持术语一致 ...
    编程 发布于2024-11-19
  • 如何从 MySQL 转储中删除 DEFINER 子句:增强备份安全性和可移植性指南
    如何从 MySQL 转储中删除 DEFINER 子句:增强备份安全性和可移植性指南
    从 MySQL 转储中删除 DEFINER 子句MySQL 转储可能包含 DEFINER 子句,它指定创建要转储的数据库对象的用户和主机。将转储导入到不同环境时,这些子句可能会引起安全问题或导致冲突。为了缓解这些问题,通常需要从转储文件中删除 DEFINER 子句。虽然无法阻止在导出过程中将 DEF...
    编程 发布于2024-11-19
  • 尽管代码有效,为什么 POST 请求无法捕获 PHP 中的输入?
    尽管代码有效,为什么 POST 请求无法捕获 PHP 中的输入?
    解决 PHP 中的 POST 请求故障在提供的代码片段中:action=''而不是:action="<?php echo $_SERVER['PHP_SELF'];?>";?>"检查 $_POST数组:表单提交后使用 var_dump 检查 $_POST 数...
    编程 发布于2024-11-19
  • 为什么编译器优化 lambda 函数比传统函数更有效?
    为什么编译器优化 lambda 函数比传统函数更有效?
    Lambda 优化和内联函数:编译器的优势Nicolai Josuttis 的声明(与普通函数相比,lambda 表现出卓越的编译器优化)引起了许多人的兴趣开发商。通过调查这一说法,我们试图揭示这种优化优势背后的根本原因。函数对象和内联作为函数对象的 Lambda 拥有一个关键优势:将它们传递给函数...
    编程 发布于2024-11-19
  • Bootstrap 4 Beta 中的列偏移发生了什么?
    Bootstrap 4 Beta 中的列偏移发生了什么?
    Bootstrap 4 Beta:列偏移的删除和恢复Bootstrap 4 在其 Beta 1 版本中引入了重大更改柱子偏移了。然而,随着 Beta 2 的后续发布,这些变化已经逆转。从 offset-md-* 到 ml-auto在 Bootstrap 4 Beta 1 中, offset-md-*...
    编程 发布于2024-11-19
  • PHP 的 time() 函数返回与时区无关的时间戳吗?
    PHP 的 time() 函数返回与时区无关的时间戳吗?
    PHP time() 返回与时区无关的时间戳吗?处理时间计算时,了解以下内容的上下文非常重要时间戳以及时区如何影响它。 PHP 的 time() 函数提供了时间戳值,但其时区含义需要澄清。GMT/UTC 时间戳UTC(协调世界时)和 GMT(格林威治)平均时间)是用作测量世界时间基础的时区。 GMT...
    编程 发布于2024-11-19
  • 如何使用 MySQL 查找今天生日的用户?
    如何使用 MySQL 查找今天生日的用户?
    如何使用 MySQL 识别今天生日的用户使用 MySQL 确定今天是否是用户的生日涉及查找生日匹配的所有行今天的日期。这可以通过一个简单的 MySQL 查询来实现,该查询将存储为 UNIX 时间戳的生日与今天的日期进行比较。以下 SQL 查询将获取今天有生日的所有用户: FROM USERS ...
    编程 发布于2024-11-19
  • 除了“if”语句之外:还有什么地方可以在不进行强制转换的情况下使用具有显式“bool”转换的类型?
    除了“if”语句之外:还有什么地方可以在不进行强制转换的情况下使用具有显式“bool”转换的类型?
    无需强制转换即可上下文转换为 bool您的类定义了对 bool 的显式转换,使您能够在条件语句中直接使用其实例“t”。然而,这种显式转换提出了一个问题:“t”在哪里可以在不进行强制转换的情况下用作 bool?上下文转换场景C 标准指定了四种值可以根据上下文转换为的主要场景bool:语句:if、whi...
    编程 发布于2024-11-19
  • 渲染后如何在 React 中聚焦输入字段?
    渲染后如何在 React 中聚焦输入字段?
    React渲染后对输入字段进行聚焦在React中,渲染后对输入字段设置焦点可以通过多种方法实现.一种方法是使用文档中建议的引用。通过将 ref 分配给渲染函数中的输入字段(例如“nameInput”),您可以访问其 DOM 节点并手动调用 focus 方法。然而,了解何时何地调用该函数至关重要。调用...
    编程 发布于2024-11-19
  • 由于源冻结期导致 AWS DMS 表失败
    由于源冻结期导致 AWS DMS 表失败
    我们正在将 AWS DMS 与 db2 连接以迁移数据。在源中,我们有大约 8 小时的冻结期,因此我们将停止并恢复 DMS 服务。 一旦我们恢复 DMS,大多数表将恢复,但某些表仍将被锁定,因为某些更改会导致“表错误”状态。此后我们无法恢复表,唯一的选项是重新加载。 我们无法定义牌桌列表或这些牌桌...
    编程 发布于2024-11-19
  • 如何在 PHP Script Echo 中处理双引号?
    如何在 PHP Script Echo 中处理双引号?
    PHP 脚本 Echo 中的双引号在 PHP 脚本中回显 HTML 代码时,正确处理双引号至关重要。考虑以下示例:<?php echo "<script>$('#edit_errors').html('<h3'><em>Please Correct...
    编程 发布于2024-11-19
  • 如何使用正则表达式验证电子邮件地址:语法与完整验证?
    如何使用正则表达式验证电子邮件地址:语法与完整验证?
    如何使用正则表达式验证电子邮件地址通过表单收集用户输入时,确保提供的电子邮件地址有效至关重要。正则表达式 (regex) 提供了执行此验证的便捷方法。然而,仅验证语法是不够的。语法验证要执行基本语法验证,可以使用以下正则表达式模式:[^@] @[^@] \.[^@] 此模式检查以下条件:恰好一个“@...
    编程 发布于2024-11-19

免责声明: 提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发到邮箱:[email protected] 我们会第一时间内为您处理。

Copyright© 2022 湘ICP备2022001581号-3