Firefox UI 已迁移至使用 Web Components 构建
这不是一项一蹴而就的工程,Mozilla 开发者表示团队花费了大约两年的时间,采用“增量更新”的方式才逐渐将 Firefox UI 迁移至使用 Web Components 构建。
Mozilla 开发者 Brian Grinstead 在博客宣布,经过多年的努力,他已在几个星期前从 Firefox UI 中移除了 XBL,亦即意味着将 Firefox UI 迁移至使用 Web Components 构建的工程已完成。
XBL 是一种基于 XML 的语言,当我们要实现附加到 DOM 元素的“绑定”就需要使用 XBL。然后,我们还可以将自定义 JS 属性和匿名内容添加到常规元素。XBL 是在90年代末期为 NetScape 设计和构建的,除了 XBL,还有许多其他的“XUL”特性可帮助我们构建桌面 Web 应用 —— 比 Web 平台提供相似的功能早得多。
Firefox 大约有 300 个 XBL 绑定和 50000 行相关代码,主要都是被比较小型的部件使用(如
<toolbarbutton label="Reload" />
),以及用于管理应用程序(如<tabbrowser />
,它通过管理标签在浏览器窗口中控制大部分状态,以及从内容页面接收消息等)。
我们可以将 Firefox UI 看作是一个非常大型的单页应用程序,最初采用 DOM 和 JS 构建,相对于 20 多年前的原生应用,它的技术选型十分大胆。也正因为 Mozilla 走得太超前 ,所以在 Web 平台尚未支持它们之前就自己实现了构建复杂 Web 应用所需的部分特性。这些特性在日后也逐渐演变成像 CSS flexbox 和 Web Components 这样的标准规范。
处于这种新老交替的时刻,让现有代码库继续使用原版本,并要求平台同时支持两者当然是最容易的,毕竟对旧代码进行重写十分困难而且成本巨大。
然而即便如此,Mozilla 还是选择在 Firefox 中实现 Web Components,他们启动了一个“并行”项目,在该项目中,团队将迁移现有的 UI 组件以使用它们。他们以“增量更新”的方式进行此操作,以便在保证 Firefox 正常运行的同时进行每个独立的更改,而不是从头开始创建一个分支来重写 UI。
Brian 认为这是一项重大的成就,也给 Firefox 的底层提供了改进,还允许团队可以将精力集中在现代 Web 标准上,并移除没有对外公开的大量重复和复杂的功能。
至于为什么要使用 Web Components,Brian 表示由于 XBL 存在的问题,多年来团队一直在讨论移除 XBL。但这项工程似乎十分庞大,并且看起来好像需要从头开始重写 Firefox UI,所以一直没能有效推动项目的进展。后来团队进行了“设计审查”,并提议启动“并行项目”计划,以实现采用“增量更新”的方式实现迁移的目标。由于两者的模型非常相似,因此开发者在迁移元素时能做出合理的选择,以尽可能保持 API 的兼容性。
低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
PowerShell 7 即将带来的 5 大亮点
上个月 PowerShell 7 发布了第 5 个预览版,离最终正式版本又更进了一步。本文介绍一下 PowerShell 7 将带来的 5 大变化,主要是一些大方向上的特性。 .NET Core 3.0 16 年开源之前(PowerShell 5.1),PowerShell 仅支持 Windows,并且基于 .NET 框架,开源之后(PowerShell Core 6)基础框架修改为 .NET Core,.NET Core 支持所有操作系统,使得 PowerShell 支持 Linux 与 macOS。 PowerShell 7 的一项重大工作是将 PowerShell Core 6 代码库移植到 .NET Core 3.0,所以 PowerShell 的发布时间取决于使用 .NET Core 3.0 完成 PowerShell 的集成和验证。 微软表示为了让 PowerShell 7 与 .NET Core 时间轴保持一致,因此 GA 版本将在 .NET Core 3.0 发布 GA 之后再推出。 另外,值得一提的是,PowerShell 上一个大版本是 PowerShell Cor...
- 下一篇
基于 SpringBoot 的快速开发平台,Jeecg-Boot 2.1.2 发布
项目介绍 JeecgBoot是一款基于代码生成器的JAVA快速开发平台,开源界“小普元”超越传统商业企业级开发平台!采用前后端分离架构:SpringBoot 2.x,Ant Design&Vue,Mybatis-plus,Shiro,JWT。强大的代码生成器让前后端代码一键生成,无需写任何代码! 引领新的开发模式(OnlineCoding模式-> 代码生成器模式-> 手工MERGE智能开发),帮助Java项目解决70%的重复工作,让开发更多关注业务逻辑。既能快速提高开发效率,帮助公司节省成本,同时又不失灵活性。JeecgBoot还独创在线开发模式(No代码):在线表单配置、移动配置能力、在线工作流配置、在线报表配置、在线图表配置、插件能力(可插拔)等等。。 当前版本:v_2.1.2 | 2019-11-22 源码下载 https://github.com/zhangdaiscott/jeecg-boot https://gitee.com/jeecg/jeecg-boot JeecgBoot正参加2019年度中国开源软件评选,谢谢投票支持 技术文档 在线演示:htt...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- Docker使用Oracle官方镜像安装(12C,18C,19C)
- CentOS8编译安装MySQL8.0.19
- CentOS8,CentOS7,CentOS6编译安装Redis5.0.7
- SpringBoot2整合MyBatis,连接MySql数据库做增删改查操作
- SpringBoot2整合Redis,开启缓存,提高访问速度
- SpringBoot2配置默认Tomcat设置,开启更多高级功能
- Hadoop3单机部署,实现最简伪集群
- CentOS7,CentOS8安装Elasticsearch6.8.6
- CentOS6,7,8上安装Nginx,支持https2.0的开启
- SpringBoot2编写第一个Controller,响应你的http请求并返回结果