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

最优惠的赣州网站建设在线的crm系统软件

最优惠的赣州网站建设,在线的crm系统软件,网址如何下载视频,做h5的网站的区别说起数据加载的机制#xff0c;有一个绕不开的话题就是前端性能#xff0c;很多电商门户的首页其实都会做一些垂直的定制优化#xff0c;比如让请求在页面最早加载#xff0c;或者在前一个页面就进行预加载等等。随着react18的发布#xff0c;请求机制这一块也是被不断谈起…说起数据加载的机制有一个绕不开的话题就是前端性能很多电商门户的首页其实都会做一些垂直的定制优化比如让请求在页面最早加载或者在前一个页面就进行预加载等等。随着react18的发布请求机制这一块也是被不断谈起并且在后续其实也给出了明确的方向。 假如我们页面中有三个组件C1、C2、C3依次嵌套每个组件中有对应的请求F1、F2、F3通常大多数人会使用useeffect和state变量来实现数据流的获取这样就意味着必须在组件加载时才能发起请求所有数据获取都发生在组件的生命周期中如下图所示我们可以将这种获取数据的方式称作瀑布流渲染但是这种方式有一个问题是在这种方法中组件之间的数据获取是按顺序进行的这实际上意味着它们彼此阻塞如果组件的层级嵌套很深的话就会导致页面的加载时间特别长。 为了阻止组件间数据获取的这种顺序阻塞另一种方法就是在组件加载前可以使用Promise.all获取所有的请求数据这样在组件加载时就已经获取到所有的数据了。这种方式解决了组件加载顺序阻塞彼此数据流获取的问题但是也产生了一个新的问题在请求完成之前页面都会是空白的。 基于第二种先请求后渲染的方式还可以使用Suspense将请求和渲染并行化Suspense 可以使得组件可以“等待”某些操作结束后再进行渲染。而这种方式如果要用到实际项目中还需要考虑C1、C2、C3对应的请求写在哪里如果写在组件中那么加载还是慢的。如果拆分出来就需要考虑文件拆分、code splitting等工程化问题。 在认真的分析了以上三种方式以后发现各有优劣同时基于上述方案我也提供一个请求优化的思路首先将请求的JS单独拆分出来打一个文件request.js在html头部引入request.js并使用async属性让脚本并行执行(如下代码所示)这样既可以保证我们的请求在最开始就能发出也能不阻塞后续React代码打包的js文件的执行相当请求和渲染的代码在并行执行。 // html头部引入request.js script async src/js/request.js/script 在发送完请求之后需要将返回的数据注入到React组件中这部分怎么注入呢简单的代码示例如下 // request.js 中请求部分 evt是发布订阅模式的一个实例 window.InitData {data: null,on: (msg, fn) evt.on(msg, e fn(e)),emit: (msg, data) evt.emit(msg, data), };fetch().then(rs {InitData.data rs;InitData.emit(init_data, rs);return rs; }); // index.js react代码逻辑…….useEffect(() {if (InitData.data ! null) {// 这里已经获取到了请求的返回值doSomething();} else {InitData.on(init_data, (data) { // 利用发布订阅模式获取到数据doSomething();});} }, []);……. 总体思路就是在html中最先加载单独打包出来的请求文件并加入async属性使脚本并行执行将返回的数据挂载到window下或者利用发布订阅模式将数据注入到react组件中。这样其实类似于边请求边渲染的模式利用提前请求来减少加载的时间。后续也是希望能用工程化的方式去解决数据的请求机制。 未来的话在开发时肯定是更倾向于边请求边渲染的这种模式在React的官网中也有说到未来计划让Suspense 处理更多的场景包括获取数据等等在新发布的React18中Suspense也是支持了服务端渲染包括近期开源的remix也都在优化请求机制能够让应用更快的加载。也欢迎有兴趣的小伙伴一起来讨论和实践。 作者京东零售 梁峰峰 来源京东云开发者社区
http://www.hkea.cn/news/14332167/

相关文章:

  • 呼和浩特网站制作 建设aspx网站模板
  • 网站开发和维护费用沈阳网站建设哪家便宜
  • 营口市代做网站玉树营销网站建设哪家好
  • 深圳网站建设费用多少钱网站建设价格差异好大
  • wordpress个人站主题渭南做网站哪家公司
  • 中企动力 网站建设 眼镜做网站后要回源码有何用
  • 网站编辑怎么做的wordpress更新服务器
  • 网站建设学习教程住建官网查询
  • 泉州wap网站制作线上营销的优势
  • 网站开发能做什么锡山区住房和城乡建设局网站
  • 网站未备案被禁用 怎么办wordpress所有分类
  • 一款蛋糕食品类企业手机网站源码wordpress小小工具
  • 重庆网站建设网络推广国外做美食视频网站有哪些
  • 那个公司搭建网站亿网通官网
  • 开发龙岗网站建设wordpress企业站模板
  • 可植入代码网站开发哈尔滨手机网站制作
  • 网站meta模板那个网站可以做软件出售的
  • 网站开发者morz时事新闻2022最新10月
  • 网站优化如何提高排名专门做汽车配件的网站
  • 长沙做四维彩超玛丽亚m网站一篇好的营销软文
  • 如何做网站弹窗大型网络规划设计方案
  • 百度seo营销网站制作网页教程
  • 做婚礼策划的网站简洁大气企业网站模板
  • 网站开发公司飞沐上海企业招聘中心官网
  • 外贸网站如何做免费推广女生wordpress网站适合
  • 怎么才能创建个人网站wordpress 侧边悬浮窗
  • led灯网站策划书个人做同城网站赚钱吗
  • 爱站网关键词挖掘机一元友情链接平台
  • 简单做网站做国外百科知识网站
  • 安装wordpress建站程序宁波网站建站