浅谈ssr服务器渲染、客户端渲染和预渲染以及前端打包部署

浅谈ssr服务器渲染、客户端渲染和预渲染以及前端打包部署浅谈 ssr 服务器渲染 客户端渲染和预渲染以及前端打包部署 1 客户端渲染 2 服务器渲染 SSR 3 预渲染前端打包文件 dist 结合 nginx 和 node 原理图 个人见解 今天下班在地铁上直到现在写这个开始前 刚刚想明白一个问题 就是这篇博客的标题 这篇博客没有代码 就是我认为我所想明白的一些东西 1 客户端渲染 gt 用户输入地址 客户端向服务器发送一次请求 gt 服务器传给浏览器对应的 html 文件 gt 浏览器解析 html 文件 gt 遇到 ajax 请求则向服务器再次请求一些数据

1.客户端渲染:

2.服务器渲染(SSR)

区别:
  客户端渲染是先拿到一个空html,再去根据代码去渲染DOM和CSSOM,涉及到了js阻塞,css阻塞等等知识点,可以去查查。
  服务端渲染是将上面的渲染过程在后端先做完,直接返回一个能直接在浏览器呈现的页面。这样就省的你自己电脑的浏览器去渲染,但速度不一定快。
优点:
  客户端渲染:
    1.可以快速的给出一个html页面骨架,然后再去慢慢加载资源。
    2.不利于爬虫,意思就是刚刚获取到html的时候,客户端渲染是空的,获取不到数据。
  服务器渲染(SSR):
    1.利于SEO ,即能被搜索引擎搜索到,因为数据能一次加载处理,方便被查到。
    2.首屏渲染,首页是通过node加载的HTML字符串,用户直接可以看到完整HTML,所以更快。
缺点:
  客户端渲染:
    1.首屏加载时间会比较慢、性能差,白屏,对于SEO无能为力、
  服务器渲染(SSR):
    1.渲染过程由后端完成,会造成服务器压力较大、
    2.服务端渲染中,影响声明周期钩子,例如react只会执行到componentDidMount之前的生命周期钩子,不利于前后端分离。
    3.服务器有压力。















说完客户端渲染和服务端渲染,下面说一下预渲染

3.预渲染

优点:
  1.同样利于seo,毕竟页面有内容。
  2.同样利于首屏渲染。
缺点:
  1.如果有很多路由页面,每个路由都构建一个html,会严重拖慢你的构建速度。



如何选择?
1.注重SEO的新闻网站,非强交互的页面,建议采用服务器端渲染
    原因:注重seo,则必须用服务器渲染或者预渲染,但是新闻页面数量巨大,预渲染构建很不友好。
2.对于强交互的页面,不注重SEO,采用客户端渲染
    原因:交互性强,可能你服务器处理完,页面很快就变了,那岂不是白费劲。所以这种更适合浏览器去处理。
3.只需改善少数页面的SEO,采用预渲染
    原因:部分页面需要seo,因此不需要花费大量时间去构建预渲染页面。





前端打包文件dist结合nginx和node原理图(个人见解)

  以上是这三种渲染方式的基本原理,但今天最困扰我的是,既然ssr是服务端渲染,那么项目打包后是静态资源,放到nginx服务器上岂不是静态的,是怎么能动态渲染的呢?
下面一张图,就是我想明白画的,而且要写这篇博客进行纪念!
在这里插入图片描述

一转眼时间到了23:30,表达如有问题欢迎评论区讨论,一起学习!

                                                                                                                                                good night~

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/227155.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月16日 下午9:49
下一篇 2026年3月16日 下午9:49


相关推荐

  • MySQL主从+Atlas 实现读写分离

    MySQL主从+Atlas 实现读写分离

    2021年6月4日
    99
  • 刘强东有多少人口_是谁在针对刘强东

    刘强东有多少人口_是谁在针对刘强东     刘强东的事情,我的文章已经说过,没啥好说的了,和我想的结果差不多。男人都没经得住美女的诱惑。关于刘强东的人品,没啥好评论的。离婚??小三??相爱了不能在一起??生活常常有。80后忙着离婚,90后忙着买房子,00后忙着谈恋爱。感慨一下就好了。      中国人口出生率断崖式跳水。2017年我国出生人口是1723万人,比2016年下降63万人。其中一孩只有724万,二…

    2025年9月12日
    9
  • BloomFilter怎么用?使用布隆过滤器来判断key是否存在?「建议收藏」

    BloomFilter怎么用?使用布隆过滤器来判断key是否存在?「建议收藏」今天跟一个同事聊了一个问题,说最近在做推荐,如何判断用户是否看过这个片段呢?想了一下,正好可以使用布隆过滤器来完成这个需求。布隆,可不是LOL的布隆。我们的这个布隆是一个叫布隆的外国人,在1970年提出的一种方案:如果判断这个key不存在,那么就一定不存在,如果key存在,那么有可能不存在。所以不存在的时候,你永远可以详细布隆。布隆过滤器是一个高空间利用率的概率性数据结构,由BurtonBloom于1970年提出,用于测试一个元素是否在集合中。新创建的布隆过滤器是一串被置为0的Bit数组(假设有m位),

    2025年6月1日
    4
  • windows修改dns服务器,windowns中dns服务器配置与管理详解(多图)

    windows修改dns服务器,windowns中dns服务器配置与管理详解(多图)安装DNS服务器在”服务器管理器”-“角色”-“添加角色”中安装DNS服务器。选择DNS服务器点下一步安装,然后安装固定服务器IP地址安装完DNS和配置好固定ip后,我们就可以开始配置DNS。在”开始”-“管理工具”-DNS打开DNS正向区域的建立并为其设置主机。选择”正向查找区域”-右击-新建区域。填写域名之后全部默认设置,直至完成。域名建立之后,我们就可以为其”新建主机”选择”hzu.com”…

    2022年6月3日
    128
  • HikariPool-1 – Connection is not available, request timed out after xxxxms.「建议收藏」

    HikariPool-1 – Connection is not available, request timed out after xxxxms.「建议收藏」完整错误:HikariPool-1-Connectionisnotavailable,requesttimedoutafterxxxxms.造成原因:在数据源配置时缺少配置validationTimeout属性,或者validationTimeout属性值配置过大<propertyname="validationTimeout"value="${hi…

    2022年6月23日
    255
  • Tomcat 部署 war包

    Tomcat 部署 war包1 shutdown sh2 删除之前旧的 war 包及相关文件夹 3 上传新的 war 包到 webapps 下面 4 startup sh5 cd 到 logs 下运行 tail fcatalina out 查看日志信息

    2026年3月19日
    2

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号