客户端渲染 CSR (Croswer Side Render)

是在单页应用中使用最多的渲染方式,我们现在的项目常用使用了react、vue之类的单页应用的框架,这类框架在进行页面渲染时,会到首先对html页面进行解析并构建dom树,等js文件返回后、动态的改变 DOM 树的结构,使得页面成为希望成为的样子,从而完成页面的渲染。如下图所示。
这种方式存在着搜索引擎不友好的特点,现在的爬虫主要分为低级爬虫和高级爬虫两种。
低级爬虫:只请求URL,URL返回的HTML是什么内容就爬什么内容。
高级爬虫:请求URL,加载并执行JavaScript脚本渲染页面,爬JavaScript渲染后的内容。
这种方式的优缺点如下表

静态页面生成 SSG (Static Site Generation):

用于静态页面的渲染方式,构建时生成完整的html页面,无需服务端请求处理,服务器响应快,非常快就可以看到展示的页面。

渲染流程如下图所示:
浏览器端向前端服务请求html资源,前端服务将已经打包好的,具有全部dom的html返回给浏览器端,进行解析、构建dom树等操作。

静态页面预渲染方式的优缺点如下:

服务端渲染 SSR (Server Side Render):

服务端请求需要的数据后,将渲染html页面,返还给客户端,
同时进行脱水操作,将服务端请求的数据挂载window上,使得浏览器可以获取到后端的数据,无须再次服务端请求
浏览器根据返回html,下载并执行相应的js文件,进行注水操作,浏览器得到数据后,将数据传递给组件,完成事件的绑定和页面的交互、最终得到可交互的页面


服务选渲染方式的优缺点如下:

在实现服务端/静态页面渲染时,可以采用实在上主流的一些框架,简化我们的开发流程,比如NextJS,是一个支持ssr,和ssg的react元框架,使用简单,在进行服务端渲染时,每一个组件都有一个getServerSideProps()的方法,只需要将数据获取的处理逻辑写在该方法中,nextjs就会自动调用,从而实现服务端的渲染。NextJS的特点如下图所示

小结

使用预渲染之前,首先要考虑是否真的需要它。
如果初始加载时的额外几百毫秒并不会对应用产生影响,这种情况下去使用预选染将是一个小题大作之举。
首屏加载时间是绝对关键的指标,在这种情况下,如果是静态页面渲染可采用SSG的方式,如果需要页面交互则采取SSR的方式。
静态页面、需要SEO流量的项目、以及用户增长型项目,如:博客、活动页面、app官网等,适用于预渲染的方式。
大部分中后台项目都更加适用于客户端渲染方式。

前端页面渲染的几种方式(CSR/SSG/SSR)相关推荐

  1. 前端实现动画的6种方式详解

    前端实现动画的6种方式详解 一.总结 一句话总结:一般是css样式改变加setInterval 二.[前端动画]实现动画的6种方式 通常在前端中,实现动画的方案主要有6种: javascript直接实 ...

  2. HTML前端页面颜色的四种方法,色号表

    HTML前端页面颜色的四种方法,色号表 颜色的三种表示方式: (1)单词:red green black-用法: <font color="pink" size=" ...

  3. 3D 渲染的 5 种方式

    营销需要源源不断的新鲜.相关且引人入胜的内容来吸引购物者--同时还要保持预算.3D 渲染作为零售内容危机的解决方案越来越受欢迎. 本文涵盖: 什么是 3D 渲染? 最佳实践:如何创建出色的 Bowel ...

  4. 设计师可以投资3D渲染的 5 种方式

    建筑公司承担着所有责任和义务,这些责任和义务都投入到设计和执行美丽的建筑上.基础在于能够绘制.可视化和呈现想法,让那些没有一生经验的人背在背后. 无论设计师是试图将他们的想法传达给客户.顾问.承包商. ...

  5. 页面导航的两种方式——声明式导航、编程式导航||vue-router编程式导航||router.push() 方法的参数规则

    页面导航的两种方式 vue-router编程式导航 编程式导航基本用法 <!DOCTYPE html> <html lang="en"><head&g ...

  6. web网页 页面布局的几种方式(转)

    web网页 页面布局的几种方式 转载 2017年06月16日 12:19:40 2218 网页基本布局方式: (1)流式布局 Fluid 流布局与固定宽度布局基本不同点 就在于对网站尺寸的侧量单位不同 ...

  7. 仿联想商城laravel实战---5、无刷新的增删改查(动态页面更新的三种方式(html))...

    仿联想商城laravel实战---5.无刷新的增删改查(动态页面更新的三种方式(html)) 一.总结 一句话总结: 直接js增加删除修改html 控制器直接返回处理好的页面 用双向绑定插件比如vue ...

  8. 前端代码深浅拷贝四种方式

    今天公司的实习生有问我代码怎么深拷贝 下面我就给大家整理四种前端代码深拷贝的四种方式 前端数据分为基本数据类型和引用数据类型,当我们拷贝引用数据类型的时候,我们希望改变新数组(对象)不改变原本的数组( ...

  9. Vue页面刷新的三种方式

    vue页面刷新的三种方式 由于功能需求,需要离开页面前告知用户是否需要丢弃未保存的数据,这时候切换的菜单会失效,但是菜单依然会高亮错误.所以要进行一次页面刷新. 方法一 原地页面刷新 this.$ro ...

最新文章

  1. 如何从Bash脚本中检测操作系统?
  2. js及jQuery实现checkbox的全选、反选和全不选
  3. VTK:vtkConnectivityFilter用法实战
  4. 对于不返回任何键列信息的 SelectCommand 不支持 UpdateCommand 的动态 SQL 生成。
  5. 英语笔记:写作:Limiting the use of disposable plastic bags
  6. Unity Shader: Shader粒子广告牌
  7. li 字多出了省略号_css 超出用省略号当标题字符溢出用省略号表示
  8. 2010-03-23 杂七杂八
  9. Kinect+OpenNI学习笔记之13(Kinect驱动类,OpenCV显示类和手部预分割类的设计)
  10. 大数据是如何作用于实体经济
  11. 官方Caffe—Microsoft编译安装
  12. 面试高频智力题 100层楼两个鸡蛋找出临界点的最多次数 (直接分析法,非动态规划思路)
  13. 腾讯开放平台开发者星级服务:全面监控Crash
  14. java take,Java DelayQueue take()用法及代码示例
  15. python redis decode_responses
  16. 阿里云服务器地域节点测试IP分享(国内+海外)Ping值延迟测试
  17. 计算机网络工程职业学院,湖南网络工程职业学院理工学院
  18. 页面渲染原理,从输入url到页面展示流程
  19. Leetcode-1002:查找常用字符(简单解法)
  20. 弹幕视频网站的盈利模式 ——以哔哩哔哩弹幕网为例

热门文章

  1. MotionEvent 详解
  2. Phantom Problem(幻读)问题
  3. Android应用源码基于vitamio的网络电视直播源码
  4. HttpClient入门教程
  5. 交换机配置——跨交换机划分VLAN配置
  6. Python之split
  7. Java,JavaSE和JavaEE的区别
  8. JS定时器不准及解决方案
  9. 学习python实现问卷星自动填写问卷
  10. 郑卢高速洛阳至洛宁段路基路面综合设计K14+000-K15+400设计计算书+cad图纸