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

理解 Web 功能

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

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]删除
最新教程 更多>
  • 如何克服PHP的功能重新定义限制?
    如何克服PHP的功能重新定义限制?
    克服PHP的函数重新定义限制在PHP中,多次定义一个相同名称的函数是一个no-no。尝试这样做,如提供的代码段所示,将导致可怕的“不能重新列出”错误。 但是,PHP工具腰带中有一个隐藏的宝石:runkit扩展。它使您能够灵活地重新定义函数。 runkit_function_renction_re...
    编程 发布于2025-03-10
  • 为什么我会收到MySQL错误#1089:错误的前缀密钥?
    为什么我会收到MySQL错误#1089:错误的前缀密钥?
    mySQL错误#1089:错误的前缀键错误descript [#1089-不正确的前缀键在尝试在表中创建一个prefix键时会出现。前缀键旨在索引字符串列的特定前缀长度长度,可以更快地搜索这些前缀。了解prefix keys `这将在整个Movie_ID列上创建标准主键。主密钥对于唯一识别...
    编程 发布于2025-03-10
  • 如何使用组在MySQL中旋转数据?
    如何使用组在MySQL中旋转数据?
    在关系数据库中使用mySQL组使用mySQL组进行查询结果,在关系数据库中使用MySQL组,转移数据的数据是指重新排列的行和列的重排以增强数据可视化。在这里,我们面对一个共同的挑战:使用组的组将数据从基于行的基于列的转换为基于列。让我们考虑以下查询: select data d.data_ti...
    编程 发布于2025-03-10
  • 大批
    大批
    [2 数组是对象,因此它们在JS中也具有方法。 切片(开始):在新数组中提取部分数组,而无需突变原始数组。 令ARR = ['a','b','c','d','e']; // USECASE:提取直到索引作...
    编程 发布于2025-03-10
  • PHP阵列键值异常:了解07和08的好奇情况
    PHP阵列键值异常:了解07和08的好奇情况
    PHP数组键值问题,使用07&08 在给定数月的数组中,键值07和08呈现令人困惑的行为时,就会出现一个不寻常的问题。运行print_r($月份)返回意外结果:键“ 07”丢失,而键“ 08”分配给了9月的值。此问题源于PHP对领先零的解释。当一个数字带有0(例如07或08)的前缀时,PHP将...
    编程 发布于2025-03-10
  • 如何干净地删除匿名JavaScript事件处理程序?
    如何干净地删除匿名JavaScript事件处理程序?
    删除匿名事件侦听器将匿名事件侦听器添加到元素中会提供灵活性和简单性,但是当要删除它们时,可以构成挑战,而无需替换元素本身就可以替换一个问题。 element? element.addeventlistener(event,function(){/在这里工作/},false); 要解决此问题,请考虑...
    编程 发布于2025-03-10
  • 我可以将加密从McRypt迁移到OpenSSL,并使用OpenSSL迁移MCRYPT加密数据?
    我可以将加密从McRypt迁移到OpenSSL,并使用OpenSSL迁移MCRYPT加密数据?
    将我的加密库从mcrypt升级到openssl 问题:是否可以将我的加密库从McRypt升级到OpenSSL?如果是这样,如何?答案:是的,可以将您的Encryption库从McRypt升级到OpenSSL。可以使用openssl。附加说明: [openssl_decrypt()函数要求iv参...
    编程 发布于2025-03-10
  • 如何使用不同数量列的联合数据库表?
    如何使用不同数量列的联合数据库表?
    合并列数不同的表 当尝试合并列数不同的数据库表时,可能会遇到挑战。一种直接的方法是在列数较少的表中,为缺失的列追加空值。 例如,考虑两个表,表 A 和表 B,其中表 A 的列数多于表 B。为了合并这些表,同时处理表 B 中缺失的列,请按照以下步骤操作: 确定表 B 中缺失的列,并将它们添加到表的末...
    编程 发布于2025-03-10
  • 如何使用FormData()处理多个文件上传?
    如何使用FormData()处理多个文件上传?
    )处理多个文件输入时,通常需要处理多个文件上传时,通常是必要的。 The fd.append("fileToUpload[]", files[x]); method can be used for this purpose, allowing you to send multi...
    编程 发布于2025-03-10
  • 对象拟合:IE和Edge中的封面失败,如何修复?
    对象拟合:IE和Edge中的封面失败,如何修复?
    解决此问题,我们采用了一个巧妙的CSS解决方案来解决问题:左:50%; 高度:auto; 宽度:100%; //对于水平块 ,使用绝对定位将图像定位在中心,以object-fit:object-fit:cover in IE和edge消除了问题。现在,图像将按比例扩展,保持所需的效果而不会失真。...
    编程 发布于2025-03-10
  • 如何使用替换指令在GO MOD中解析模块路径差异?
    如何使用替换指令在GO MOD中解析模块路径差异?
    在使用GO MOD时,在GO MOD 中克服模块路径差异时,可能会遇到冲突,其中可能会遇到一个冲突,其中3派对软件包将另一个带有导入套件的path package the Imptioned package the Imptioned package the Imported tocted pac...
    编程 发布于2025-03-10
  • 如何在JavaScript对象中动态设置键?
    如何在JavaScript对象中动态设置键?
    在尝试为JavaScript对象创建动态键时,如何使用此Syntax jsObj['key' i] = 'example' 1;不工作。正确的方法采用方括号: jsobj ['key''i] ='example'1; 在JavaScript中,数组是一...
    编程 发布于2025-03-10
  • \“(1)vs.(;;):编译器优化是否消除了性能差异?\”
    \“(1)vs.(;;):编译器优化是否消除了性能差异?\”
    答案: 在大多数现代编译器中,while(1)和(1)和(;;)之间没有性能差异。编译器: perl: 1 输入 - > 2 2 NextState(Main 2 -E:1)V-> 3 9 Leaveloop VK/2-> A 3 toterloop(next-> 8 last-> 9 ...
    编程 发布于2025-03-10
  • 为什么我的CSS背景图像出现?
    为什么我的CSS背景图像出现?
    故障排除:CSS背景图像未出现 ,您的背景图像尽管遵循教程说明,但您的背景图像仍未加载。图像和样式表位于相同的目录中,但背景仍然是空白的白色帆布。而不是不弃用的,您已经使用了CSS样式: bockent {背景:封闭图像文件名:背景图:url(nickcage.jpg); 如果您的html,css...
    编程 发布于2025-03-10

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

Copyright© 2022 湘ICP备2022001581号-3