iis服务器助手广告广告
返回顶部
首页 > 资讯 > 前端开发 > VUE >如何深入浅析CSR和SSR
  • 712
分享到

如何深入浅析CSR和SSR

2024-04-02 19:04:59 712人浏览 安东尼
摘要

这篇文章给大家介绍如何深入浅析CSR和SSR,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。前序:简述SEOSEO(Search Engine Optimi

这篇文章给大家介绍如何深入浅析CSR和SSR,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。

如何深入浅析CSR和SSR

前序:简述SEO

  • SEO(Search Engine Optimization)是指搜索引优化,通俗说就是总结搜索引擎的检索排名规则,合理的优化网站,使得你的网站在百度或者谷歌这样的搜索引擎中的排名进步,让更多的用户能够访问到你的网站。

客户端渲染:
  • 客户端渲染(Client Side Render),就是用户在通过URL请求访问网站时,服务器端返回给的是html文档,再让浏览器去解析渲染展示页面,其中的jsCSS,图片文件等均需再次发送请求去服务端请求数据加载。

    如何深入浅析CSR和SSR

服务端渲染:
  • 与客户端渲染相对应的就是服务器端渲染(SSR),在服务端看来,所有的前端渲染显示页面都是一串字符串,包括html, js, css都是如此,服务端渲染即是将一段处理好后的html字符串返回给客户端,而在返回的这个html字符串中,服务端知识将需要展示到html的服务端数据等信息直接写入到了这段html字符串中让客户端浏览器能够直接对其进行显示。

    如何深入浅析CSR和SSR

这里简单示例一个服务端渲染的例子:

import Koa from 'koa'
import Router from 'koa-router'
const app = new Koa()
const router = new Router()
router.get('/', async (ctx) => {
	ctx.body = `		<html>
		  <head>
		    <title>服务端渲染返回</title>
		  </head>
		  <body>
		    <h2>Hello World!</h2>
		  </body>
		</html>
	`
})
app.use(router.routes())

app.listen(3000, () => {
	console.log("koa server listening on 3000")
})

通过上述服务端返回的html字符串到客户端直接显示成了相应的网页,这样客户端不用再去多次不断的请求服务端加载数据了

如何深入浅析CSR和SSR

服务端渲染 VS 客户端渲染
  • CSR和SSR最大的区别在于CSR进行页面的渲染是服务端直接返回HTML给客户端渲染显示,而SSR则是将页面的渲染交给了服务端的JS执行。

  • **传统的CSR的弊端 => **

  1. 由于直接返回HTML到客户端进行渲染,客户端需要多次发送ajax到服务端拉取JS代码执行,导致了页面的首屏加载速度会变慢。

  2. 对于SEO是不友好的,因为我们客户端是从服务端拉取JS过来执行的,而搜索引擎的爬虫只能识别html结构的内容,对于js代码则不能够进行识别。

因此SSR的出现就是可以解决了传统CSR存在的这种弊端,因为此时客户端请求拿到的就将是我们服务端渲染好的html,这样对于SEO也足够的友好。

如何深入浅析CSR和SSR

关于如何深入浅析CSR和SSR就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。

--结束END--

本文标题: 如何深入浅析CSR和SSR

本文链接: https://www.lsjlt.com/news/88689.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 如何深入浅析CSR和SSR
    这篇文章给大家介绍如何深入浅析CSR和SSR,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。前序:简述SEOSEO(Search Engine Optimi...
    99+
    2022-10-19
  • 如何深入浅析SQL Server 触发器
    这篇文章将为大家详细讲解有关如何深入浅析SQL Server 触发器,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。触发器是一种特殊类型的存储过程,它不同于之...
    99+
    2022-10-19
  • 深入浅出分析Java类和对象
    目录一、什么是类二、Java的类和C语言的结构体异同三、类和类的实例化类的声明实例化的对象,成员遵循默认值规则类的实例化静态属性(静态成员变量)四、构造方法创建构造方法this一、什...
    99+
    2022-11-13
  • 深入浅析Java 抽象类和接口
    目录一、抽象类1.抽象类1.1抽象类的定义1.2抽象方法的定义方式1.3抽象类的定义方式2.抽象类和实例类的区别3.抽象类示例4.抽象类的特征二、接口1.接口1.1接口的定义1.1定...
    99+
    2022-11-12
  • 深入浅析Node中的进程和线程
    // app.js const Koa = require('koa') const router = require('koa-router')() const app = new Koa() // 用来...
    99+
    2023-05-14
    nodejs​ 进程 线程
  • 深入浅析C# 11 对 ref 和 struct 的改进
    目录前言背景ref 字段生命周期scopedunscopedref struct 约束反射实际用例栈上定长列表栈上链表未来计划高级生命周期总结前言 C# 11 中即将到来一个可以让重...
    99+
    2022-11-13
  • 深入浅析Python中join 和 split详解(推荐)
    python join 和 split方法简单的说是:join用来连接字符串,split恰好相反,拆分字符串的。 .join()   join将 容器对象 拆分并以指定的字符将列表内的元素(element)...
    99+
    2022-06-04
    详解 Python join
  • 深入浅析ArrayList 和 LinkedList的执行效率比较
    一、概念:    一般我们都知道ArrayList* 由一个数组后推得到的 List。作为一个常规用途的对象容器使用,用于替换原先的 Vector。允许我们快速访问元素,但在从列表中部插入和删除元素时,速度却嫌...
    99+
    2023-05-31
    arraylist linkedlist 执行效率
  • 如何深入浅析小程序中的全局配置
    本篇文章给大家分享的是有关如何深入浅析小程序中的全局配置,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。全局配置文件及常用的配置项小程序根目录下的 app.json 文件是小程序...
    99+
    2023-06-28
  • 深入浅析java中面向对象的继承和多态
    深入浅析java中面向对象的继承和多态?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。继承和多态一.this super关键字this: 可以在构造器中的第一代码中...
    99+
    2023-05-31
    java 继承 多态
  • Java 深入浅出解析面向对象之抽象类和接口
    目录抽象类声明抽象类声明抽象方法案例使用规则接口声明接口案例接口特性抽象类和接口的区别抽象类 java语言,声明类时 abstract class Db{} 说明Db类为抽象类。 j...
    99+
    2022-11-13
  • 如何深入浅出Rhino以及与Java和JS的关系
    这期内容当中小编将会给大家带来有关如何深入浅出Rhino以及与Java和JS的关系,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。Java SE的亮点之一就是Oracle详细阐述Java SE 8路线图。我...
    99+
    2023-06-17
  • 深入浅析Java中重写与重载方法有何不同
    深入浅析Java中重写与重载方法有何不同?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。重写(Override)重写是子类对父类的允许访问的方法的实现过程进行重新编写!返回值...
    99+
    2023-05-31
    java 重写 重载
  • 如何解析Python中的赋值、浅拷贝和深拷贝
    这篇文章给大家介绍如何解析Python中的赋值、浅拷贝和深拷贝,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。先明确几点不可变类型:该数据类型对象所指定内存中的值不可以被改变。(1)、在改变某个对象的值时,由于其内存中的...
    99+
    2023-06-22
  • 如何分析web前端中的深拷贝和浅拷贝
    小编今天带大家了解如何分析web前端中的深拷贝和浅拷贝,文中知识点介绍的非常详细。觉得有帮助的朋友可以跟着小编一起浏览文章的内容,希望能够帮助更多想解决这个问题的朋友找到问题的答案,下面跟着小编一起深入学习“如何分析web前端中的深拷贝和浅...
    99+
    2023-06-05
  • 如何解析Python深拷贝与浅拷贝问题
    这篇文章将为大家详细讲解有关如何解析Python深拷贝与浅拷贝问题,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。在平时工作中,经常涉及到数据的传递,在数据传递使用过程中,可能会发生数据被修改...
    99+
    2023-06-16
  • 浅析uniapp中如何导入step组件
    在前端开发中,UniApp 是一个非常流行的跨平台应用开发框架。在 UniApp 中,Step 组件是一种非常实用的组件,可以帮助开发者实现一些常见的步骤式操作流程。然而,在使用 UniApp 进行开发时,可能会遇到一些问题,比如如何正确地...
    99+
    2023-05-14
  • 如何浅析Fedora 7的Linux嵌入式
    这篇文章将为大家详细讲解有关如何浅析Fedora 7的Linux嵌入式,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。下面就这个问题来详细说说Linux嵌入式。这里,需要利用内核nfs功能,将...
    99+
    2023-06-17
  • 如何深入剖析RHEL5安全性
    如何深入剖析RHEL5安全性,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。现在生活的各个方面对于安全都有很高的要求,当然计算机的安全性更是重中之重,对于RHEL5安全性的讨论也...
    99+
    2023-06-17
  • 如何深入分析VB.NET FieldOffset特性
    如何深入分析VB.NET FieldOffset特性,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。VB.NET编程语言是一款由微软推出的面向对象语言。我们可以在实际编程中去...
    99+
    2023-06-17
软考高级职称资格查询
推荐阅读
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作