最近刚好公司有项目需要用到服务端渲染,于是花了些时间了整理了关于服务端渲染与客户端渲染的知识,现在记录下来,希望能帮助大家提升对浏览器渲染,服务端渲染的理解,在项目选型上做出正确的决策。

本文会涉及这几个关键词:

  • 客户端渲染(client-side rendering)
  • 服务端渲染(server-side rendering)
  • 预渲染(Prerendering)
  • 同构渲染(Rehydration)

为了更好的理解客户端,服务端渲染我们要抛出一个老生常谈的面试点,浏览器输入一个url地址到页面显示,这个过程经历了什么?

客户端渲染(client-side rendering)


基于上面的图,我给大家总结一下,大致过程就是 :
用户输入地址,客户端向服务器发送请求
=> 服务器传给浏览器相应的网页文件
=> 浏览器解析文件
=> 遇到ajax请求则向服务器再次请求一些数据
=> 服务器再次向浏览器发送相应的数据
=> 浏览器拿到ajax请求返回的数据后,将数据渲染在页面上

可见客户端请求需要经历这么繁杂的步骤,整个过程下来也需要花费不少时间。这里应该有人会说,有没有一种方法能够能够一次性拿到渲染好的数据,客户端直接进行渲染?答案是有的,服务端渲染!

服务端渲染(server-side rendering)


同样的,看完图我给大家总结一下,服务器渲染的步骤就是:
客户端向服务器发送一次请求
=> 服务器接收请求,并在服务端操作网页文件,将对应数据导入文件
=> 服务器在服务端渲染好整个网页,发送给客户端
=> 客户端接收服务器发送过来的网页文件,不需要做任何操作,直接呈现

通过上面两种渲染方式的对比分析,可以看出服务器渲染的方式对比客户端渲染少了二次请求数据等步骤,页面呈现更加干脆,浏览器直接拿到数据展示就可以了。

预渲染(Prerendering)

预渲染是指用户请求之前,页面已经合成好了,服务端无需再次合成页面,直接将页面返回给客户端。也就是静态页面。对于用户来说,预渲染的体验和服务端渲染体验类似,首屏展示速度比客户端渲染快。

同构渲染(Rehydration)

同构渲染,实际上就是把CSR和SSR的优势结合起来,让同一套代码在服务器上跑一遍,生成首屏内容,然后再在客户端跑一遍,绑定事件。这样既提供了更快的首屏速度、更好的SEO支持,又能避免对服务器带来过大的负载。
关于同构渲染,业界已经有成熟的解决方案,基于react的nextjs以及基于vue的nuxtjs,他们都是神级的同构框架,我们只需要简单的二次封装就定制符合业务的服务端渲染框架。如果是一个新的项目,要实现SEO,解决白屏等问题,则可以考虑直接使用此类框架搭建。

客户端渲染(CSR) VS 服务端渲染(SSR)

总结

现在想必对客户端,服务端渲染有一个整体印象了吧。其实一般的页面中,两种渲染是相结合着使用的,因为我们会有些数据不想过早的传过来,想要被用到时再去拿数据,同时也不想被爬虫那么轻易的爬取,而且也不需要被搜索引擎搜索并展示,我们就可以用客户端渲染。但有时,我们想让我们网页的数据被搜索引擎搜索到,能让用户在使用搜索引擎的时候,查找到我们的数据信息,我们就可以使用服务器渲染。
关于客户端,服务端渲染的概念我就说这些,大家有什么疑问可以楼下评论去探讨探讨~

浅析客户端渲染(CSR)与服务端渲染(SSR)相关推荐

  1. 客户端渲染(CSR)和服务端渲染(SSR)差别

    文章目录 客户端渲染 服务端渲染 两者区别 客户端渲染 当用户发送请求返回页面,此时页面只是一个模板页面,浏览器解析页面的代码是通过js读取时,根据我们所写的接口去请求数据,得到返回的数据使用页面的模 ...

  2. 【SSR和CSR】服务端渲染和客户端渲染区别?如何快速分辨页面是SSR还是CSR?

    首先,介绍一下 SPA.SEO.SSR 三者的区别 SPA(single page application)单页面应用,是前后端分离时提出的一种解决方案. 优点:页面之间切换快:减少了服务器压力: 缺 ...

  3. 服务端渲染css,vue服务端渲染提取css

    vue服务端渲染,提取css单独打包的好处就不说了,在这里主要说的是抽取css的方法 要从 *.vue 文件中提取 CSS,可以使用 vue-loader 的 extractCSS 选项(需要 vue ...

  4. 服务端渲染可以用ajax吗,服务端渲染(SSR)

    导读 本文主要是从三个方面学习服务端渲染,内容整理自多个博客. 服务端渲染是什么?什么是服务端渲染?(服务端渲染的运行机制) 为什么使用服务端渲染?服务端渲染解决了什么问题? 什么情况下使用服务端渲染 ...

  5. ssr Android简书,渲染篇一:服务端渲染(SSR)

    导读 本文主要是从三个方面学习服务端渲染,内容整理自多个博客. 服务端渲染是什么?什么是服务端渲染?(服务端渲染的运行机制) 为什么使用服务端渲染?服务端渲染解决了什么问题? 什么情况下使用服务端渲染 ...

  6. SSR 学习 - 传统服务端渲染 Web 应用、客户端渲染、同构渲染、优缺点和案例演示

    概述 随着前端技术栈和工具链的迭代成熟,前端工程化.模块化也已成为了当下的主流技术方案. 在这波前端技术浪潮中,涌现了诸如 React.Vue.Angular 等基于客户端渲染的前端框架. 这类框架所 ...

  7. 如何快速判断页面是服务端渲染还是客户端渲染

    什么是服务器端渲染和客户端渲染? 互联网早期,用户使用浏览器浏览的都是一些没有复杂逻辑的.简单的页面,这些页面都是在后端将html拼接好的然后将之返回给前端完整的html文件,浏览器拿到这个html文 ...

  8. 服务端渲染SSR与客户端渲染

    文章目录 一.服务端渲染和客户端渲染的区别 服务端渲染(SSR -- server side render) 客户端渲染 二.使用服务端渲染(SSR)的利弊 优势 局限 三.实际应用 应用原则 举例 ...

  9. 客户端渲染和服务端渲染

    参考链接:客户端渲染和服务端渲染的区别https://blog.csdn.net/qq_40885461/article/details/88539989 浅谈服务端渲染(SSR)https://ww ...

  10. 服务端渲染ssr(server side render)

    目录 1 - 什么是服务器端渲染? 1.1 新建server文件夹 1.2 生成一个node项目 1.3 安装express 1.4 服务端渲染小案例 1.5 运行查看效果 1.6 打开浏览器 1.7 ...

最新文章

  1. hibernate关联关系(一对多)
  2. 基于状态机的LCD多级菜单设计
  3. Python 100例(上)
  4. java找重复字符串_在java中怎样查找重复字符串
  5. 众善之源 or 万恶之源?详析微服务的好与坏
  6. 不规则矩形中心求法 c语言,不规则矩形
  7. 每天一道剑指offer-二叉搜索数的后序遍历序列
  8. DBSCAN(自适应密度聚类)算法解析
  9. 卖菜201809-1
  10. python是免费的、开源的、跨平台的_推荐:3款开源的Python IDE
  11. 远程 mysql error 2003_远程连接MySQL报错ERROR 2003解决办法
  12. Mybatis系列(四)注解
  13. ad15图层显示_AD15使用及设置
  14. SandStorm 出品|建设者高光时刻 9 月作品集已上线!
  15. java老九_【老九】【Java】小议转义字符
  16. 不止谷歌,微软也有自己的眼镜计划?!
  17. Linux磁盘分区及格式化简介,Linux硬盘分区及格式化学习笔记
  18. IDEA连接达梦数据库
  19. mount指令之-o参数解析
  20. spring cloud--微服务

热门文章

  1. 2B互联网市场:春江水暖谁先知,正是拐点发力时
  2. 投简历一直没有回应,原因竟然是...
  3. 万物皆可电商,生鲜的坎坷之路
  4. 倒车雷达的缺陷以及可能的改良方法
  5. java手机杀毒_Android项目实战手机安全卫士(01)
  6. mysql 存储 emoji_MySQL 中如何存储 emoji ?
  7. 如何让自己像打王者荣耀一样发了疯、拼了命的学习?
  8. 电子计算机体积,世界上体积最大的计算机
  9. Linux5配置本地yum源,Rehat Enterprise Linux 5:配置本地yum源
  10. 为你的NAS开启DDNS服务,独立IP IPV6 可用 - DDNS-GO