当前位置: 首页 > news >正文

用asp.net开发网站的优势域名推荐

用asp.net开发网站的优势,域名推荐,网页设计的目的是指设计者,网站推广策划书范文一、 背景 JS 是引擎是单线程运行的;严格来说,JS 引擎和页面渲染引擎在同一渲染线程,两者互斥。那么就会遇到这样的一种情况:当前面一个任务长期霸占CPU,后面啥事也干不了,浏览器卡死,造成极差…

一、 背景

JS 是引擎是单线程运行的;严格来说,JS 引擎和页面渲染引擎在同一渲染线程,两者互斥。那么就会遇到这样的一种情况:当前面一个任务长期霸占CPU,后面啥事也干不了,浏览器卡死,造成极差的用户体验。

对于前端而言,主要的解决方向:
  1. 优化每个任务,让它有多快就多快。挤压CPU运算量
  2. 快速响应用户,让用户觉得够快
  3. 尝试 Worker 多线程

Vue选择了第一种,使用模板让它有了很多优化的空间,配合响应式机制可以让Vue可以精确地进行节点更新;
React选择了第二种,让用户看起来快。

React的优化

为了给用户制造一种应用很快的’假象’,我们不能让一个程序长期霸占着资源. 你可以将浏览器的渲染、布局、绘制、资源加载、事件响应、脚本执行视作操作系统的’进程’,我们需要通过某些调度策略合理地分配CPU资源,从而提高浏览器的用户响应速率, 同时兼顾任务执行效率。

所以 React 通过Fiber 架构,让自己的Reconcilation 过程变成可被中断。 '适时’地让出CPU执行权,除了可以让浏览器及时地响应用户的交互还可以:给浏览器一点喘息的机会,他会对代码进行编译优化(JIT)及进行热代码优化,或者对reflow进行修正。

React 通过 jsx 来描述界面结构,它会将 jsx 编译成 render function,执行后生成 vdom
在这里插入图片描述
在 v16 之前的React,通过直接递归遍历生成Vdom,通过调用dom api 增删改的方式来操作dom进行渲染。但若 vdom 太大,频繁调用 dom api ,加上递归这个过程不能打断,这样可能会存在性能问题。

后来 react 就引入了 fiber 架构,先将 vdom 树转成 fiber 链表,再渲染。

React 16 版本前后最大的改变就是引入了 fiber 。基于 fiber 在16.8 版本后引入了hooks.

二、 Fiber是什么呢?

Fiber 也称协程、或者纤程。可以理解为一种数据结构、最小的工作单元
协程:本身是没有并发或者并行能力的(需要配合线程),它只是一种控制流程的让出机制。

1. 主动让出机制

核心:React 渲染的过程可以被中断,可以将控制权交回浏览器,让位给高优先级的任务,浏览器空闲后再恢复渲染

在这里插入图片描述

浏览器在一帧内的执行:处理用户输入事件、Javascript执行、requestAnimation 调用、布局 Layout、绘制 Paint。
理想的一帧时间是 16ms,如果浏览器处理完上述的任务(布局和绘制之后),还有盈余时间,浏览器就会调用 requestIdleCallback 的回调

React通过 主动让出机制,让浏览器执行高优先级任务。
通过 requestIdleCallback API实现空闲执行,超时停止,将控制权交换给浏览器。
(由于 requestIdleCallback 只有Chrome支持,react 自己实现了一个MessageChannel )

2.一个执行单元

react 将fiber视作一个执行单元,每次执行完一个’执行单元’, React 就会检查现在还剩多少时间,如果没有时间就将控制权让出去.

ReactFiber架构树

图片来源稀土掘金社区
从稀土掘金社区找的一张图,通过图片可以简答展示整个过程。如图所示:fiber 是链表结构。 vdom 转 fiber 的过程叫做 reconcile,这个过程可以被打断。React 通过 schedule 机制在空闲时调度 reconcile,reconcile 的过程中会做diff,打上增删改的标记(effectTag),接下来就是将所有打了 Effect 标记的节点串联起来,然后就可以一次性 commit

这整个schedule、reconcile、commit 的流程可以概括为 fiber 架构,对应的数据结构也叫 fiber

参考来源:

  1. React Fiber(时间分片) 打开方式
  2. 简单手写Fiber架构
http://www.yayakq.cn/news/845777/

相关文章:

  • 石家庄便宜网站制作上海网站建设治汇网络
  • 重庆市建设安全监督站的网站电子商务网站建设需求分析报告
  • 建设网站最重要的是什么静海网站建设制作
  • 免费手机端网站模板下载工具建外贸商城网站
  • 网站制作农业高端网站建设的方案
  • 宁乡的网站建设网络营销市场调研的内容
  • 网站建设任务分解青岛制作企业网站的公司
  • 广西柳州住房和城乡建设局网站宝塔面板安装wordpress
  • 陶瓷 网站模板网站功能建设流程图
  • 程序员找工作的网站成品短视频app的优势
  • 厦门找一家做网站的公司好百度网站排名优化软件
  • 专门做汽车配件的外贸网站wordpress强大用户中心
  • 企业网站建设费用计入哪个科目阿里巴巴做网站找谁
  • 好看的网站博客模板下载wordpress 新浪代码
  • 中机建设一公司网站智囊团建网上登录入口
  • 网站忧化工作怎么样广告设计策划公司
  • 刷赞网站空间免费简单的旅游网站怎么做
  • 公司做网站需要准备什么条件谷歌代运营
  • 建立大型网站吗网站的切图是谁来做
  • 企业网站建设与实施调查报告wordpress 安装文件
  • 如何做好网站的优化做全景图的网站
  • 佛山网站建设品牌小程序登录模板
  • 网站建设类毕业设计网络广告策划公司
  • 安平网站建设ftp上传网站全教程
  • 南昌网站维护制作网站建设设计制作
  • 做旅游网站的设计感想大学生做爰网站
  • 电子商务网站建设与管理 pdf上海好的设计公司
  • 域名注册空间网站知乎关键词搜索排名
  • 乐山做美食推荐的网站凡客平台
  • 做网站做图电脑需要什么配置谭海波博客简介 wordpress