关于WEB性能的思考

有关WEB性能的思考,不涉及方法论。

之所以萌生出写这篇文章的想法,主要是最近看的一些参考资料,让我联想到了web性能。可能会好奇,我最近究竟看的是什么呀?啊哈,是有关虚拟DOM以及DOM操作为什么慢的问题。

一开始好奇虚拟DOM技术,看看了实现的算法,后来发现,虚拟DOM是为了解决DOM慢的问题,于是开始重点关注DOM为什么慢,然后就发现这其实是WEB性能问题。

不过,DOM为什么慢和DOM性能这两个问题也不是完全重合,因为这里所说的DOM慢,是属于WEB性能问题的一部分。还是先说一下DOM慢在何处吧。

DOM慢,主要来源两方面:DOM操作本身慢,DOM操作的影响导致页面响应慢。

DOM操作本身慢,主要涉及DOM操作的时间复杂度。

DOM操作的影响,是指网页渲染。DOM操作会导致布局,绘制,图层合并等浏览器行为,而这些行为统称为渲染,需要注意的是,渲染是WEB的性能瓶颈。

WEB性能问题中,一般分为两个主要问题:首屏加载性能和交互性能(渲染性能)。

从上面可以看出DOM慢直指WEB渲染性能差。WEB渲染性能主要发生于重排和强制同步布局(重复读写DOM操作等),那么解决问题的方法之一是减少重排的可能性,尽量一次性操作,或者集中批量操作读或者写操作。针对这个问题的解决方案有fastDOM,另外一种就是上面提到的虚拟DOM技术。

这里还想说一下虚拟DOM技术,上面提到虚拟DOM主要是为了解决DOM慢而提出的,通过集中处理DOM树中的改变,从而提高DOM渲染的效率。虚拟DOM是利用原生JS对象表示(代理)原始DOM树的信息和结构,当用户操作或浏览器行为需要页面状态发生改变时,那就根据状态的改变重构这个原生JS对象,然后对比新的对象树和旧的对象树,得到两树的差异,最后只针对变化的地方修改原始DOM树,重新渲染视图。这样一来,就可以集中处理DOM树的操作,较少渲染次数,提高渲染效率。因为针对原始DOM树的操作都可以在JS对象树中执行,而原生JS对象的操作快很多,算法实现也更容易,所以虚拟DOM技术很火。如果你使用过React或者Vue,肯定了解过这两个前端框架均采用了virtual DOM。此外,virtual DOM的核心算法是diff算法,即比较两棵DOM树的差异。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 156,757评论 4 359
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 66,478评论 1 289
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 106,540评论 0 237
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 43,593评论 0 203
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 51,903评论 3 285
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,329评论 1 210
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 31,659评论 2 309
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,383评论 0 195
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,055评论 1 238
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,337评论 2 241
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 31,864评论 1 256
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,227评论 2 251
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 32,820评论 3 231
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 25,999评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,750评论 0 192
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 35,365评论 2 269
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,260评论 2 258