首页 > 其他分享 >2024年,还有不用这个技术的网站?

2024年,还有不用这个技术的网站?

时间:2024-08-30 12:26:13浏览次数:14  
标签:渲染 网站 不用 2024 静态 HTML 服务端 客户端

大家好,我是程序员鱼皮。

不知道大家有没有听说过 “服务端渲染” 这样一种技术?如今这个技术越来越流行,尤其对于以内容为核心的网站,使用服务端渲染可以大幅提升网站被搜索到的概率,所以很多企业级网站都用到了这个技术来开发,比如几个知名大站 —— B 站、C 站、G 站、P 站等等。

啥啥啥,不会有人不知道这些网站都是什么吧?

2024年,还有不用这个技术的网站?_服务端

前段时间有位小伙伴专门吐槽我们开发的编程导航网站没有用服务端渲染:

2024年,还有不用这个技术的网站?_HTML_02

看到这条评论,兄弟我有点儿难受了。说实话,我们这个网站不用服务端渲染,还不是因为。。。因为 嘛!

2024年,还有不用这个技术的网站?_客户端_03

开个玩笑,当然也有一些其他的原因。。。

服务端渲染技术虽好,但也不是万金油。2024 年,如果你还没有了解过这个技术,或者不了解它正确的应用场景,那可就真的 out 了。下面鱼皮就给大家科普下这个技术。

揭秘服务端渲染

1、什么是客户端和服务端渲染?

网站渲染可以在服务端和客户端两种环境下进行:

2024年,还有不用这个技术的网站?_客户端_04

客户端就是你的电脑,或者具体一点,可能是你电脑上打开的浏览器;而服务端就是机房里的服务器。

在客户端渲染中,客户端会先向服务器请求 HTML 文件,服务器会返回一个基础的 HTML 文件,其中包含必要的 JavaScript 脚本。这些脚本在浏览器端运行,动态请求后端的数据、生成网页内容并渲染到页面上。

以我们的 编程导航网站 为例,就使用了客户端渲染,使用 F12 网络控制台查看加载的网站内容。可以看到刚开始加载的 HTML 文档并不包含网站的数据,只有一个标题、以及一个 JS 脚本。

2024年,还有不用这个技术的网站?_HTML_05

这特么看起来比我刚学网站开发的时候写的记事本还简单!

接下来,浏览器会执行该脚本,并触发后续的数据请求和加载流程,逐渐显示整个页面,所以看到请求的过程是断断续续的。

2024年,还有不用这个技术的网站?_服务端_06

与客户端渲染相对,服务端渲染是一种将网页在 服务器端 生成并渲染为 HTML 内容的技术。在这种方式下,当用户请求一个网页时,服务器会提前调用后端来获取数据并生成完整的 HTML 文档,然后将其发送到客户端(浏览器)。浏览器接收到 HTML 后,直接展示页面内容,不用再动态地向后端发送请求来获取数据。

我们的 面试刷题网站 - 面试鸭 使用的就是服务端渲染。从下图可以看到,服务端返回的 HTML 文档中,就已经有完整的网站数据和样式了:

2024年,还有不用这个技术的网站?_HTML_07

2、二者的优缺点

由于 Ajax、Vue、React 等技术的崛起,大多数学前端的同学开发的网站都是基于客户端渲染实现的,我说的没错吧?估计大家比较熟悉的词是 SPA、SPA、SPA,天天做 SPA~

客户端渲染的优点主要是:

  1. 开发方便灵活:开发者不需要区分哪些数据要在服务端加载、哪些数据要在客户端加载,也不用担心哪些 API 无法在服务端使用。
  2. 减少服务器压力:由于渲染工作由客户端(用户自己的电脑)完成,因此服务器的负载相对较小,只需要提供静态资源。

服务端渲染的好处是:

  1. 减少页面初始加载时间:首次加载时展示完整内容,减少白屏时间,不用等待 JavaScript 加载和执行后才能展示内容。
  2. 更有利于 SEO,因为搜索引擎爬虫能够直接抓取完整页面的内容,而不依赖于 JavaScript 的执行。

这两个技术各有优缺,所以不能说服务端渲染就一定更好。总结一下二者的适用场景:如果你的网站要做 SEO、希望被更多人搜索到,首选服务端渲染,但对服务器配置的要求就更高了;如果你不需要做 SEO,比如面向企业的网站、内部网站、个人学习用的网站,或者是较为复杂、充满各种动态交互的网站,用客户端渲染就好。

能够实现服务端渲染的技术很多,以前有 Java 的 JSP、PHP 等等,现在有基于 React 的 Next.js 和基于 Vue 的 Nuxt.js 框架,可以让你直接用前端的语法开发服务端渲染项目。我们自己的网站用的就是 Next.js,开发成本已经跟客户端网站差不多了。

2024年,还有不用这个技术的网站?_HTML_08

3、静态网站生成

除了服务端渲染和客户端渲染外,还有一种常用的技术 —— 静态网站生成。

静态网站生成是一种在 构建阶段 生成静态 HTML 文件的技术。注意,是在构建时(而不是用户请求时)就已经请求后端服务器获取了数据并且把页面生成好了,用户请求的时候服务器只需要把文件发出去就行,不用再做其他处理。

搜索引擎最喜欢的就是静态 HTML 文件,可以大幅提升 SEO 效果。此外,这些静态文件还可以通过内容分发网络(CDN 缓存)进行加速,进一步减少服务器的压力。

但静态网站生成的缺点也很明显,不适合内容动态变化的网站。而且随着内容的增多,每次构建要生成大量静态页面,时间会越来越长。

基于这些优缺点,静态网站生成适合内容数量有限的、内容基本不变的网站,比如个人博客。像 VuePress、Hugo、Hexo、Astro 都是主流的静态网站生成器。

鱼皮的编程宝典就是基于 VuePress 开发的,我把制作模板也开源到了 GitHub 上:https://github.com/liyupi/codefather

2024年,还有不用这个技术的网站?_HTML_09

当然,有问题就有解决方案。随着静态网站内容越来越多,每次构建会越来越慢,这种情况下,可以采用增量静态生成技术。允许部分页面在构建之后进行更新,而无需重新构建整个站点。这种技术适用于那些大多数内容不变、但某些部分需要动态更新的网站。

比如我改了博客里的一篇文章,那么只需要重新生成这篇文章对应的 HTML 页面即可。这样一来,可以在享受静态网站高性能、SEO 友好特性的同时,及时更新网站的内容,并减少构建时间。

不过缺点就是网站架构更复杂、维护成本更高。但值得一提的是,很多大型网站为了做 SEO 优化,专门把动态网站转为静态 HTML。

4、结合使用

实际开发中,前面讲到的几种方式可以结合使用。

比如 部分预渲染 是一种将静态页面生成与客户端渲染结合的技术。

在构建阶段或请求阶段,页面的静态部分预先渲染,比如导航栏、页脚等。页面加载时,静态部分可以直接显示。比如刚访问面试鸭刷题网站的时候看到的效果如下,这些内容无论谁访问看到的都是一样的、不变的:

2024年,还有不用这个技术的网站?_服务端_10

然后,通过 水合 过程,客户端的 JavaScript 接管已经渲染的静态内容,并继续处理动态交互。比如请求后端获取用户登录状态、并且加载出用户的信息:

2024年,还有不用这个技术的网站?_客户端_11

这样一来,网站兼具了服务端渲染的 SEO 友好和快速初始加载、以及客户端渲染灵活动态交互的优点。

2024年,还有不用这个技术的网站?_HTML_12

还有一个跟部分预渲染相似的概念叫 同构渲染 ,是指同一套代码可以在服务端和客户端运行,并在服务端渲染页面的初始内容,然后在客户端接管渲染和交互。

实际情况下鱼皮也更推荐用这种方式,鱼皮带大家开发的 最新项目 中,就会使用同构渲染开发一套前端万用项目模板。


OK,感谢你阅读到这里。大家做网站用到过服务端渲染或者静态网站生成技术么?欢迎评论区留言分享。


更多

标签:渲染,网站,不用,2024,静态,HTML,服务端,客户端
From: https://blog.51cto.com/u_15016006/11875149

相关文章

  • 做网站推广需要注意哪些
    有效的网站推广是确保你的在线存在被广泛认知的关键。以下是一些关键的注意事项,可帮助你在竞争激烈的在线世界中脱颖而出。**1.**明确目标受众:在开始任何推广活动之前,确保你清楚地了解你的目标受众是谁。了解他们的需求、兴趣和在线行为将有助于你更有针对性地制定推广策略......
  • 东营网站建设手机网页开发
    东营网站建设与手机网页开发在当今信息化快速发展的时代,网站已成为企业宣传、品牌推广和业务拓展的重要工具。尤其是在东营这样一个经济快速发展的城市,越来越多的企业意识到网络建设的重要性,纷纷投入到网站建设与手机网页开发中。然而,如何进行高效、优质的网站建设,特别是手机......
  • 企业网站推广有哪些方法
    企业网站推广是一项复杂而关键的任务,成功的推广策略可以为企业带来更多的曝光、流量和业务机会。以下是一些关键的步骤,可以帮助企业有效地推广他们的网站。**1.制定清晰的推广目标和策略**在开始推广之前,企业需要明确推广的目标是什么。是增加网站流量、提高品牌知名度还是......
  • Oracle 19c OCP 082认证考试题库(第5题)- 2024年修正版
    【优技教育】Oracle19cOCP082题库(Q5题)-2024年修正版考试科目:1Z0-082考试题量:90通过分数:60%考试时间:150min本文为(CUUG原创)整理并解析,转发请注明出处,禁止抄袭及未经注明出处的转载。原文地址:http://www.cuug.com/index.php?s=/home/article/detail/id/3387.html第5......
  • 20240827_102249 python 认识csv格式
    目标认识csv格式制作一个csv文件示例......
  • 在中国使用wordpress建网站的主要有三类人
    在中国,使用WordPress建网站的主要有三类人:做IT技术程序员、海归人士和做外贸的老板。这三类人选择WordPress的原因可以从WordPress的多个优势中找到答案。做IT技术程序员选择WordPress的原因在于其高度的可扩展性和灵活性。WordPress的模块化设计和强大的插件生态系统使得程序......
  • 基于java ssm jsp mysql人才招聘网站毕业设计项目实战
    前言......
  • 野兔在线文库网站程序系统源码/app/小程序开发定制
    野兔文库系统是一套采用高速稳定的PHP+MYSQL开发,采用thinkPHP8框架、高性能、功能强、负载强的文库系统。文档支持格式:doc、docx、ppt、pptx、xls、xlsx、wps、et、dps、txt、pdf等程序开发: 程序名称:野兔文库系统程序开发:PHP+MySQL+tp8程序源码:100%开源,支持任意二开,商用......
  • 2024年第三季北京/上海/广州/深圳CDGA/CDGP认证报名倒计时1天
    2024年第三季度CDGA和CDGP认证考试将于2024年9月7日下午举行。本期CDGA/CDGP考试为最后一次使用DMBOK2.0版本的考试。从2024年10月峰会考试开始,CDGA/CDGP将使用全新的DMBOK2.X版课本,考试内容及考试题型将有所调整。 本期认证考试报名现已开启,相关事宜通知如下: ·考试时间CDGA:202......
  • 20240827_102109 python 字符流遍历得到每一行的数据
    需求python字符流遍历得到每一行的数据读取文件的内容每隔一秒钟,显示一行内容示例1示例2......