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

理解 Web 功能

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

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]删除
最新教程 更多>
  • Apache HttpClient 4预认证基础认证简易方案
    Apache HttpClient 4预认证基础认证简易方案
    使用Apache httpclient 4:替代方法To streamline the process, we can utilize a simpler method:Request-Specific Authentication:For cases where you need要使用单个请求强...
    编程 发布于2025-04-16
  • 如何解决由于Android的内容安全策略而拒绝加载脚本... \”错误?
    如何解决由于Android的内容安全策略而拒绝加载脚本... \”错误?
    Unveiling the Mystery: Content Security Policy Directive ErrorsEncountering the enigmatic error "Refused to load the script..." when deployi...
    编程 发布于2025-04-16
  • Java开发者如何保护数据库凭证免受反编译?
    Java开发者如何保护数据库凭证免受反编译?
    在java 在单独的配置文件保护数据库凭证的最有效方法中存储凭据是将它们存储在单独的配置文件中。该文件可以在运行时加载,从而使登录数据从编译的二进制文件中远离。使用prevereness class import java.util.prefs.preferences; 公共类示例{ 首选项...
    编程 发布于2025-04-16
  • MySQL命令行执行SQL脚本的正确姿势
    MySQL命令行执行SQL脚本的正确姿势
    在尝试运行包含多个查询的SQL脚本时,在mySQL 中执行SQL脚本时,您可能会在使用命令源[path/to to/to/sql_file]时遇到错误。这是因为当使用MySQL命令行界面(mySQL>)时,未识别源命令。在MySQL命令行中执行SQL脚本,请使用正确的Syntax,请使用正确的语法...
    编程 发布于2025-04-16
  • 如何使用Java.net.urlConnection和Multipart/form-data编码使用其他参数上传文件?
    如何使用Java.net.urlConnection和Multipart/form-data编码使用其他参数上传文件?
    使用http request 上传文件上传到http server,同时也提交其他参数,java.net.net.urlconnection and Multipart/form-data Encoding是普遍的。 Here's a breakdown of the process:Mu...
    编程 发布于2025-04-16
  • 在PHP中,如何在回调函数中使用外部计算的变量?
    在PHP中,如何在回调函数中使用外部计算的变量?
    使用变量计算出的外部回调函数在PHP中,可以在回调函数之外计算变量并在这些函数中使用它们。让我们考虑以下方案:您有一个数组$ arr,想要使用array_filter创建一个新的数组,该数组仅包含小于$ arr中元素的平均值的新数组。使用回调函数实现此功能,您可能会遇到函数的挑战,即在函数内部和使...
    编程 发布于2025-04-16
  • 为什么PYTZ最初显示出意外的时区偏移?
    为什么PYTZ最初显示出意外的时区偏移?
    与pytz 最初从pytz获得特定的偏移。例如,亚洲/hong_kong最初显示一个七个小时37分钟的偏移: 差异源利用本地化将时区分配给日期,使用了适当的时区名称和偏移量。但是,直接使用DateTime构造器分配时区不允许进行正确的调整。 example pytz.timezone(...
    编程 发布于2025-04-16
  • 如何修复\“常规错误:2006 MySQL Server在插入数据时已经消失\”?
    如何修复\“常规错误:2006 MySQL Server在插入数据时已经消失\”?
    How to Resolve "General error: 2006 MySQL server has gone away" While Inserting RecordsIntroduction:Inserting data into a MySQL database can...
    编程 发布于2025-04-16
  • 如何正确使用与PDO参数的查询一样?
    如何正确使用与PDO参数的查询一样?
    在pdo 中使用类似QUERIES在PDO中的Queries时,您可能会遇到类似疑问中描述的问题:此查询也可能不会返回结果,即使$ var1和$ var2包含有效的搜索词。错误在于不正确包含%符号。通过将变量包含在$ params数组中的%符号中,您确保将%字符正确替换到查询中。没有此修改,PDO...
    编程 发布于2025-04-16
  • FastAPI自定义404页面创建指南
    FastAPI自定义404页面创建指南
    response = await call_next(request) if response.status_code == 404: return RedirectResponse("https://fastapi.tiangolo.com") else: ...
    编程 发布于2025-04-16
  • 如何在其容器中为DIV创建平滑的左右CSS动画?
    如何在其容器中为DIV创建平滑的左右CSS动画?
    通用CSS动画,用于左右运动 ,我们将探索创建一个通用的CSS动画,以向左和右移动DIV,从而到达其容器的边缘。该动画可以应用于具有绝对定位的任何div,无论其未知长度如何。问题:使用左直接导致瞬时消失 更加流畅的解决方案:混合转换和左 [并实现平稳的,线性的运动,我们介绍了线性的转换。这...
    编程 发布于2025-04-16
  • Android如何向PHP服务器发送POST数据?
    Android如何向PHP服务器发送POST数据?
    在android apache httpclient(已弃用) httpclient httpclient = new defaulthttpclient(); httppost httppost = new httppost(“ http://www.yoursite.com/script.p...
    编程 发布于2025-04-16
  • .NET中如何获取AssemblyVersion和AssemblyFileVersion?
    .NET中如何获取AssemblyVersion和AssemblyFileVersion?
    从assemblyInfo To retrieve the AssemblyVersion, you can use the code snippet:Version version = assembly.getEntryAssembly()。getName()。版本; 此代码获取活动汇编,检索其...
    编程 发布于2025-04-16
  • `console.log`显示修改后对象值异常的原因
    `console.log`显示修改后对象值异常的原因
    foo = [{id:1},{id:2},{id:3},{id:4},{id:id:5},],]; console.log('foo1',foo,foo.length); foo.splice(2,1); console.log('foo2', foo, foo....
    编程 发布于2025-04-16
  • Django CSRF验证为何在Ajax POST请求中失败?
    Django CSRF验证为何在Ajax POST请求中失败?
    Django CSRF Check Failing with Ajax Post RequestAs outlined in Django's documentation, enabling CSRF protection helps prevent malicious cross-site...
    编程 发布于2025-04-16

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

Copyright© 2022 湘ICP备2022001581号-3