• 页面渲染


    一、过程

    1、浏览器解析HTML,生成DOM Tree

    2、浏览器解析CSS,生产CSSOM Tree

    3、JavaScript会通过DOM API 和CSSOM API 来操作DOM Tree和CSS Rule Tree,浏览器将DOM Tree和CSSOM Tree合成渲染树(Render Tree)

    4、布局(layout):根据Render Tree进行回流,计算每个节点的几何信息

    5、绘制:根据渲染树和回流得到的几何信息,得到每个节点的绝对像素

    6、展示:将像素发送给GPU在页面展示

    二、主流技术架构

    1、服务端渲染:后端同步渲染(JSP、Node.js等,能够快速实现业务开发并上线,优势:快。协助利器:jSmart、Velocity.js。)、同构直出(一套代码既可以在服务端运行,又可以在客户端运行。技术实现:Next.js、Gatsbyjs、nuxt.js)、BigPipe(pagelet、流)

    2、客户端渲染:

      JavaScript渲染:

        静态化(使动态化的网址生成静态HTML页面以供用户更好访问的技术,一般分为纯静态化和伪静态化。优势:提高访问速度、降低服务器负担。缺点:服务器存储占用问题、静态页面中的链接更新会出问题。技术实现:定时任务、模板技术)、

        前后端分离(后端提供API,前端从API获取数据并进行渲染和显示;后端:java、php+nginx、微服务等。前端:angular、react、vue部署到cdn或node server)

        单页面应用(通过动态重写当前页面,来与用户交互。适用于:重交互页面业务、核心链路场景业务)

      WebAPP:Angular、React、Vue等,PWA(核心是service worker,浏览器支持80+%)

      原生APP:ios、Android

      Hybrid App:PhoneGap、AppCan

      跨平台开发:RN、flutter、小程序等

    三、页面渲染技术选型的合理化建议:

    1、存在即合理

    2、依赖业务形式

    3、依赖团队规模

    4、依赖技术水平

    5、没有银弹

    四、页面加载

    1、懒加载:延迟加载。长网页中延迟加载特定元素,可能是图片、js/css文件或js的特点函数和方法。可以减少当前屏无效资源的加载。data-lazy属性实现。

    2、预加载:提前加载所需的资源到浏览器本地。减少用户后续加载资源等待的时间。实现:HTML标签,显示属性设为none;使用image对象;使用preload、prefetch、preconnect、

    3、预渲染

    4、按需加载:

      常规按需加载:js原生、jQuery

      不同APP按需加载:js-sdk脚本文件

      不同设备按需加载:PC端和html5端样式文件

      不同分辨率按需加载:CSS Media Query

      react异步载入

      Vue异步载入

    5、楼层式加载:楼层数据异步加载和本地缓存相结合的方式

      

  • 相关阅读:
    CSS日食与太阳碰撞
    CSS日食与太阳碰撞
    CSS日食与太阳碰撞
    CSS日食与太阳碰撞
    CSS日食与太阳碰撞
    CSS日食与太阳碰撞
    CSS日食与太阳碰撞
    CSS日食与太阳碰撞
    CSS日食与太阳碰撞
    5个最顶级jQuery图表类库插件-Charting plugin
  • 原文地址:https://www.cnblogs.com/cvv54/p/13282110.html
Copyright © 2020-2023  润新知