范文健康探索娱乐情感热点
投稿投诉
热点动态
科技财经
情感日志
励志美文
娱乐时尚
游戏搞笑
探索旅游
历史星座
健康养生
美丽育儿
范文作文
教案论文

HTML界的小飞人详解Canvas优越性能和实际应用

  Google Docs宣布将会把HTML迁移到基于Canvas渲染,这一消息的出现再次把几年前随HTML5诞生的标签重新推到了人们视线之中。Canvas在刚推出时主打的优势就是更快的渲染速度,堪称HTML届的"小飞人",刷新了人们对Web页面元素绘制速度的印象。但Canvas的优势仅限于此吗?
  (图片来源于网络)HTML绘图届的前辈:SVG
  Canvas是HTML5时代引入的"新"标签。与很多标签不同,Canvas不具有自己的行为,只将一组API 展现给客户端 JavaScript ,让开发者使用脚本把想绘制的东西画到一张画布上。
  在HTML5之前,人们通常使用SVG来在页面上绘制出图形。SVG使用XML来定义图形,就像使用HTML标签和样式定义DIV一样,我们也可以将一个空白的DIV想象为长方形的SVG,两者的设计思想是相通的,SVG的本质就是一个DOM元素。而Canvas则不同,Canvas提供的是 JavaScript 的绘图 API,而不是像 SVG那样使用XML 描述绘图,通过JavaScript API直接完成绘制,比起修改XML来说要更简便、更直接。
  除了定义的方式不同,Canvas和DOM(当然也包含SVG)的差异更多的体现在浏览器的渲染方式上。
  浏览器在做页面渲染时,Dom元素是作为矢量图进行渲染的。每一个元素的边距都需要单独处理,浏览器需要将它们全都处理成像素才能输出到屏幕上,计算量十分庞大。当页面上内容非常多,存在大量DOM元素的时候,这些内容的渲染速度就会变得很慢。
  而Canvas与DOM的区别则是Canvas的本质就是一张位图,类似img标签,或者一个p加了一张背景图(background-image)。所以,DOM那种矢量图在渲染中存在的问题换到Canvas身上就完全不同了。在渲染Canvas时,浏览器只需要在JavaScript引擎中执行绘制逻辑,在内存中构建出画布,然后遍历整个画布里所有像素点的颜色,直接输出到屏幕就可以了。不管Canvas里面的元素有多少个,浏览器在渲染阶段也仅需要处理一张画布。
  然而这样更加强大的功能,不可避免的让使用canvas渲染有很高的门槛。Google Docs在构建Canvas的过程中重新定义了往常已经被人们所熟悉的内容,例如精确定位、文本选择、拼写检查、重画调优等。为什么更多开发者还是选择了接纳Canvas这个门槛更高的技术路线 呢?这就得回到Canvas的最大优势:渲染性能。Canvas的渲染模式
  这里的渲染是指浏览器将页面的代码呈现为屏幕上内容的过程。Canvas和Dom的渲染模式完全不同,搞清楚这个差异对理解Canvas的性能优势至关重要。
  Dom:驻留模式
  驻留模式(Retained Mode)是Dom在浏览器中的渲染模式。下图粗略展示了这一过程的工作流程。
  DOM的核心是标签,一种文本标记型语言,多样性很强且多个标签之间存在各种关联(如在同一个DIV下设置为float的子DIV)。浏览器为了更好的处理这些DOM元素,减少对绘制API的调用,就设计了一套将中间结果存放于内存的"驻留模式"。首先,浏览器会将解析DOM相关的全部内容(包含HTML标签、样式和JavaScript),将其转化为场景(scene)和模型(model)存储到内存中,然后再调用系统的绘制API(如Windows程序员熟悉的GDI/GDI+),把这些中间产物绘制到屏幕。
  驻留模式通过场景和模型缓存减少了对绘制API的调用频次,将性能压力转移到场景和模型生成阶段,即浏览器需要根据DOM上下文和BOM中的尺寸数据,"自行判断"每一个元素的绘制结果。
  Canvas:快速模式
  Canvas采用了和DOM不同的快速模式(Immediate Mode),让我们先来看看快速模式是如工作的:
  与驻留模式相比,快速模式将场景和模型的生成从浏览器移交给了开发者。开发者在设计页面时,就通过Canvas的JavaScript API定义了画布内所有元素的绘制方式。浏览器只需要简单的执行这些脚本即可,而不需要像渲染DOM一样逐个处理子元素了。
  在快速模式中,页面的绘制性能得到了大幅提升。但开发者不仅需要指定什么需要画,还要创建和维护一个模型。此外,开发者还需要管理好当前场景重绘时带来的改变,以及响应用户的点击或输入操作等。Canvas的应用优点
  上面介绍的两种不同的模式直接造成了Dom和Canvas的性能差异。对于使用快速模式渲染的Canvas而言,浏览器的每次重绘都是基于代码的,不存在能让处理流程变慢的多层解析,所以它真的很快。除了快之外,Canvas的灵活性也大大超出DOM。我们可以通过代码精确的控制如何、何时绘制出我们想要的效果。
  在资源消耗上,DOM的驻留模式意味着场景中每增加一点东西就需要额外消耗一些内存,而Canvas并没有这个问题。这个差异会随着页面元素的数量增多而愈加明显。以B端的企业应用场景为例,表单那种数据量比较小的场景,不同渲染模式带来的效果差异并不明显;但在工业制造、金融财会等类Excel电子表格操作的场景下,单元格数量动辄便是上百万(5万行x 20列)甚至上亿个,浏览器需要对表格所有单元格本身内容进行渲染,同时还涉及到丰富的数据处理,情况就完全不同了。
  (Web页面上的电子表格,包含1百万个单元格)
  在Canvas出现之前,在前端渲染表格时只能通过构建复杂的DOM来实现。这种方式下,浏览器的性能成为了Web应用瓶颈,让很多开发者放弃了在浏览器上实现电子表格的想法。
  在Canvas出现后,快速模式带来的性能优势无疑是一个巨大的亮点,大量、复杂的DOM渲染处理带来的性能问题终于有了解决途径。
  回到电子表格的应用场景,业内已经出现了使用Canvas绘制画布的表格组件,这类组件在渲染数据层时不仅无需重复创建和销毁DOM元素,在画布的绘制过程中,也比Dom元素渲染的限制更少。除了表格之外,Canvas也为数字孪生可视化大屏、页面游戏等场景带来了变革。
  (数字孪生大屏,精确控制各种形状、样式)总结
  总结一下,在渲染模式上,Canvas站在了DOM的对面,浏览器对其内容一无所知,一切渲染的权利回到了开发者的手上,这个改变带来了显著的性能优势。此外,我们可以使用Canvas绘制种类更为丰富的UI元素,如线形、特殊图形等,通过画法逻辑,还可以实现更加精准的UI界面渲染,解决了浏览器差异造成的样式误差,让更多应用场景可以顺利迁移到Web平台上来。

大规模新能源分布式调相机群落地青海来源人民网人民日报海外版青海省海南藏族自治州共和县境内的大唐青海公司新能源分公司光伏电站一角(无人机照片)。新华社记者张宏祥摄本报西宁电(记者刘雨瑞)近日,11台新能源分布式调相机连人民日报都关注的元宇宙,华为是否有相关技术呢?华为的未来是要创建中国工业互联网,华为所涉足的行业是全工业类目的所有行业。是要用科学技术帮助国家改变社会体质,华为就好比是中国科技界的盘古,等华为死的那一天会将自己的身体化作宇宙万人民日报也劝不住?阿里巴巴再砸200亿,将卖菜进行到底随着互联网的发展,给我们的生活和工作带来了很大的改变,特别是在生活上,越来越便利,衣食住行,都可以通过互联网来解决。购物不再去线下门店,吃饭点个外卖,出行不用带现金,娱乐不再是看电少一点套路,多一点真诚,人民日报公开点名,三大运营商要注意了在现代生活中,手机已经成为大家不可缺少的亲密伙伴,打电话微信聊天淘宝购物百度搜索资讯,大家时时刻刻都抱着手机在上网,这个过程中会产生话费和流量套餐费,虽然价格不算昂贵,但是也是一笔各大巨头对元宇宙趋之若鹜,谷歌(GOOG。US)CEO却认为下一个万亿价值将再次来自搜索业务当许多科技巨头将元宇宙视为下一个增长前沿时,SundarPichai认为,谷歌(GOOG。US)的未来在于其最传统的业务互联网搜索。谷歌首席执行官Pichai在接受采访时表示我感到闪送入选北京市专精特新名单三大数字化系统保障小时达服务上证报中国证券网讯(记者王子霖)近日,北京市经济与信息化局公布了北京市2021年度第六批拟认定专精特新中小企业名单,闪送所隶属的北京同城必应科技有限公司成功入选,这标志着闪送作为同为啥都说联想收购的摩托罗拉是一个空壳子?先来了解一下子摩托罗拉,这可以说是手机的老祖宗了,最早的大哥大,在功能机时代和诺基亚是手机圈的两个扛把子,有很多经典机型。当然摩托罗拉的辉煌不止于此,比如曾经和苹果,IBM合力开发挂耳朵上的助听器和塞进耳朵里的哪一种比较好?谢邀!个人绝对是推荐挂耳式的助听器。首先,助听器并不是音乐耳机,它的使用目的和音乐耳机是有本质区别的。如果是挑选音乐耳机,那我一定建议你选择入耳式。因为音乐耳机对声音的一定追求,入很多高中生使用高档手机你怎么看?高中生又不挣钱,使用高档手机是家庭经济条件决定的,现在的孩子们哪有节俭习惯,只要家庭经济允许,都会选择用高档日用品,攀比心理高中时早以形成。自我炫富显摆的心态,玩高档手机的学生心里中国与世界共享科技创新成果来源人民网人民日报海外版图为参观者在第二十届中国北京国际科技产业博览会上参观展出的北斗卫星导航系统模型新华社记者鞠焕宗摄英国经济学人杂志近日刊文称,中国高科技企业在东道国蓬勃发展健电商领域的发展随着电商发展,获客成本变高,由增量向存量过度,需要提升会员价值,线下零售萧条可预见,但核心是人货场,人增速趋缓,人口红利开始缺乏。且新生代价值观发生变化,拥有越多改为体验个性化,更
国内在线视频企业的困境(1)行业盈利艰难一国内在线视频行业盈利艰难1爱奇艺是国内在线视频龙头最近几天到处都是爱奇艺裁员的消息,职场社交平台脉脉爆料的人也多,应该八九不离十了,就是裁员规模不知道有多大。不过对商业企业来说也元宇宙中美经济形态之争主战场之一(中)最近抖音上出来了很多关于元宇宙的营销号,避免大家误入歧途,将通过以下内容解读区块链NFTDAO数字孪生这些新物种,以及对我们的生活影响。区块链是币圈和链游吗?当然不是,它是一种新型中国量子计算研发进入世界第一阵营,应用如何了?专访郭光灿2021年10月30日,郭光灿院士(左三)团队在做离子阱实验钱建豪摄当下的量子信息开始从实验阶段走向市场阶段,开启了另一种模式另一种生态的竞争如果国外生态一直优于我们,那么我们在应阿里员工让7岁女儿学写代码,并曝出其水平,网友过于残酷现在的孩子们压力是越来越大了,除了在学校的学习之外,家长也会给他们报各种兴趣班什么的,想要他们全面发展。孩子们的收获确实不小,但这也让很多孩子失去了童年该有的乐趣。虽然父母们都是为中国北斗将迎新升级?或率先实现激光全球通信,传输速率远超5G中国的北斗,世界的北斗迄今为止,由中国自主打造的全球卫星导航系统北斗三号(以下简称北斗)已经建成一年多。2020年6月23日,中国北斗最后一颗组网卫星顺利发射,意味着中国顺利完成卫华为P50POCKET震撼发布,之前的全球销量第一如今却是限量版华为P50Pocket评测大家都知道,华为在没有被美国芯片限制之前,可谓是在手机领域掀起一帆风浪。从名不见经传到越来越强,经历的可不是一点半点,一路何其坎坷。以往的VIVO,OPP谷歌弃完moto弃!模块化手机Fairphone4反而惊艳到我手机中国新闻模块化智能手机是一个十分新奇有趣的想法,包括谷歌moto在内的许多科技厂商都曾尝试过,但实施起来却非常困难。12月27日,手机中国了解到,一直坚守在这个困难的领域的手机红红火火过大年!HELLOGANSSHS87T法拉利红上手HELLOGANSS是GANSS旗下的高端子品牌,目前已经入手过HS108THS98T两种配列,之前这个系列有白羽白桃琉璃香雪黑曜五种配色,最近他们家又推出红黄黑三色组成的法拉红配血亏224亿,大裁员30,快手跌落神坛继字节跳动爱奇艺裁员之后,又一家互联网巨头传出要裁员的消息。快手裁员近日,有脉脉网友爆料称,快手将要裁员30,国际业务的裁员已经开始!12月8月,澎湃新闻报道称,从多位内部员工处获实探小米汽车亦庄总部办公区尚未启用紧临芯片项目本报记者陈燕南童海华北京报道继9月1日小米汽车有限公司成立之后,时隔不到三个月,一家名为小米汽车科技的公司注册在了同样的地址。资料显示,小米汽车两家公司的所在地位于小米集团的园区内豆瓣下架后思考12月9豆瓣被工信部下架,值得深思,原来很好的APP平台也是很好知识学习平台,后来怎么把娱乐圈也拉进来娱乐起来了,吃瓜群众也多了起来,总是出现两个力量的较量。关键还涉及超范围高频次