资讯专栏INFORMATION COLUMN

浏览器平台的改造

joywek / 754人阅读

摘要:缘起最近看到几个框架觉得趋势有明显就是大家都在想各种办法浏览器我想越来越多人来开发应用并不是为了特别适合开发图形应用而是因为这个平台更容易触及并且对客户端兼容更多大概正因为如此才会有现在这么多基于浏览器和各种不同的想法浏览器并不是虚拟机但是

缘起

最近看到几个框架, 觉得趋势有明显, 就是大家都在想各种办法 Hack 浏览器.
我想越来越多人来开发 HTML5 应用并不是为了 HTML5 特别适合开发图形应用,
而是因为 Web 这个平台更容易触及, 并且对客户端兼容更多
大概正因为如此, 才会有现在这么多基于浏览器 Hack 和各种不同的想法
浏览器并不是虚拟机, 但是越来越多的技术使得浏览器变得像是一个虚拟机的平台

浏览器

我接触互联网的时间在 09 年左右, 那时候看到 Chrome 的更新
后来的事情大家都知道了, Chrome 导致 JavaScript 和 Web 应用成为了流行技术
优化的性能, 大量从前浏览器不具备的 API, CSS3 动画, 实现了先决条件

但是实现浏览器, 修改浏览器的默认脚本语言, 不是那么随意的
HTML5 存在标准, ECMAScript 有标准, CSS 也有标准
先不说对于以往的页面的兼容性和开发浏览器本身的难度,
单说开发一套能用的技术, 能快速传递给开发者, 本身难度就非常大
于是有了后边基于 JavaScript 的各种 Hack

语言的编译

首先 CoffeeScript 之类的语言, 以 JavaScript 环境为虚拟机
其他的代码编译到 JavaScript 去运行, 从而绕过浏览器环境的限制
借助这样手段, 浏览器不支持的很多编程范式和语法能引入浏览器
其中有名的比如 CoffeeScript..

https://github.com/jashkenas/coffeescript/wiki/List-of-languages-that-compile-to-JS

CSS 方面的情况类似, 甚至也加入了编程语言的各种逻辑
另一方面, HTML 也在不断改变, 首先是各种模板引擎
模板引擎主要实现了模版和模块化的特性, 其次带来了各种语法

https://github.com/coffee-js/languages/wiki/List-of-languages-that-compile-to-HTML-CSS

动态的转化

但是更精彩的是对于 DOM 结构的模拟, 比如 Virtual DOM
主要在 React 当中, Virtual DOM 作为 DOM 操作优化的中间形式而存在
Virtual DOM 相对于模板引擎有更多优化的功能, 更具备编程语言的抽象能力
另外还有 Elm 在函数式响应式编程带来了性能飞快的实现

http://calendar.perfplanet.com/2013/diff/

而在新的发展的技术当中, Famo.us 对于 DOM 的问题显得更加激进
Famo.us 认为 DOM 并不适合当前和未来交互非常多的 App
Web 应用需要的是一个类似游戏引擎的平台, 以达成高性能和精致界面
于是 Famo.us 推出的框架中, 应用的逻辑被编译到特别优化的 DOM
这些 DOM 被开启了 GPU 加速, 绕过了浏览器低效的优化
甚至在 Famo.us 当中集成了一个物理引擎, 以应对精致的动画效果
生成的 DOM 以平铺的结构排在 Container 下, 绕过低效的优化

http://elm-lang.org/blog/Blazing-Fast-Html.elm

今天另外看到的一个模块是 Facebook 正在开发的 css-layout
这个模块用于将 CSS3 通过 JavaScript 编译到具体的数值配置
通过这样方式, 绕过各种浏览器兼容性问题, 实现 Flexbox 布局等等新技术

https://github.com/facebook/css-layout

趋势

我感到由于浏览器的平台优势和技术束缚, 将会有更多绕过浏览器功能技术出现
取出浏览器优秀的子集作为虚拟机, 用来开发更适合应用开发的技术
上边列出我所看到的, 希望未来能看到更适用于 Web 开发的技术不断出现

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/85363.html

相关文章

  • 微前端改造初探

    摘要:我们继续沿用了原来就有的,借此把融入整个微前端框架,而已经改造的则不需要我们的开发团队,分框架组和各个业务组。项目该项目是整个微前端项目的入口。本坑实践它很大的理由也是用自己的方法初探微前端实践方法的可行性。 在写这篇文章的一个多月前,本坑还不知道微前端是什么,大概从字面上的含义是比较小的前端项目。 本坑开始实践它,是由于工作要求。改造一个运行多年,前端用jsp写的服务平台项目(以下简...

    KunMinX 评论0 收藏0
  • 从零到百亿互联网金融架构发展史

    摘要:总体介绍在互联网金融行业一百多亿其实也算不上大平台,也就是二级阵营吧,其实每次的架构升级都是随着业务重大推进而伴随的,在前一代系统架构上遇到的问题,业务开发过程中积累一些优秀的开发案例,在下一代系统开发中就会大力推进架构升级。 回想起从公司成立敲出的第一行代码算起到现在也快三年了,平台的技术架构,技术体系也算是经历了四次比较重大的升级转化(目前第四代架构体系正在进行中),临近年底也想抽...

    mrcode 评论0 收藏0
  • 从零到百亿互联网金融架构发展史

    摘要:总体介绍在互联网金融行业一百多亿其实也算不上大平台,也就是二级阵营吧,其实每次的架构升级都是随着业务重大推进而伴随的,在前一代系统架构上遇到的问题,业务开发过程中积累一些优秀的开发案例,在下一代系统开发中就会大力推进架构升级。 回想起从公司成立敲出的第一行代码算起到现在也快三年了,平台的技术架构,技术体系也算是经历了四次比较重大的升级转化(目前第四代架构体系正在进行中),临近年底也想抽...

    U2FsdGVkX1x 评论0 收藏0
  • 又让马儿跑又不让吃草,微服务化如何完成低成本改造

    摘要:小编一哥们和我吐槽自家的烦恼原本一个有钱有闲的证券行业经理一年前被老板派去支持创新业务探索因为新型业务在不断加速铺开当前的单体式应用复杂度越来越高业务上线过程繁琐流程冗长资源分配耗时较多更新频率越来越低人员也越来越显得捉襟见肘这哥们于是开始 小编一哥们和我吐槽自家的烦恼原本一个有钱有闲的证券行业IT经理一年前被老板派去支持创新业务探索因为新型业务在不断加速铺开当前的单体式应用复杂度越来...

    QiShare 评论0 收藏0
  • 拉勾网基于 UK8S平台容器化改造实践

    摘要:宋体本文从拉勾网的业务架构日志采集监控服务暴露调用等方面介绍了其基于的容器化改造实践。宋体此外,拉勾网还有一套自研的环境的业务发布系统,不过这套发布系统未适配容器环境。写在前面 拉勾网于 2019 年 3 月份开始尝试将生产环境的业务从 UHost 迁移到 UK8S,截至 2019 年 9 月份,QA 环境的大部分业务模块已经完成容器化改造,生产环境中,后台管理服务已全部迁移到 UK8...

    CoorChice 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<