前端ssr跟ssg的区别

这篇具有很好参考价值的文章主要介绍了前端ssr跟ssg的区别。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

前端渲染方案SSR / SSG

前端SSR(Server-side Rendering)与SSG(Static Site Generation)是两种不同的技术,用于提高网站性能和用户体验。

SSR:服务端渲染 Server Side Render,PHP / Java / Python 后台基本能力,生成 HTML 模板,交由浏览器渲染。

SSG:页面静态化 Static Side Generation,把 node 提前渲染成 HTML

前端SSR与SSG的区别

前端SSR(Server-side Rendering)与SSG(Static Site Generation)是两种不同的技术,用于提高网站性能和用户体验。



SSR技术是在服务器端生成完整的HTML页面,并将其发送给客户端。当客户端请求一个页面时,服务器端会动态生成该页面并将其发送给客户端。这种技术有助于提高网站的搜索引擎优化(SEO)和用户体验,因为页面在服务器端生成,客户端可以快速呈现页面。



SSG技术是在构建阶段生成静态HTML页面,并存储在服务器端。当客户端请求一个页面时,服务器端直接发送预先生成的HTML页面。这种技术提高了网站的速度,因为服务器端不需要动态生成页面,客户端可以立即呈现页面。

总的来说,SSR技术更适用于需要动态生成页面的网站,例如含有个性化内容或动态数据的网站。而SSG技术更适用于不需要动态生成页面的静态网站,例如个人博客或静态展示网站。

前端SSR实现需要在服务器端使用技术,例如Node.js,使用框架,例如Express或Nest.js,以及渲染库,例如React或Vue.js。下面是一个使用React和Node.js实现SSR的简单示例:

在服务器端创建一个React组件,该组件将动态生成HTML。

创建一个Node.js服务器,该服务器将接收客户端请求并使用React组件生成完整的HTML页面。

在服务器端的Node.js服务器上安装必要的依赖项,例如React,Express等。

创建一个路由处理程序,该处理程序将在客户端请求一个页面时调用React组件,并生成HTML页面。

在客户端请求页面时,服务器端将动态生成完整的HTML页面并发送给客户端。


```javascript
// server.js
const express = require('express');
const React = require('react');
const renderToString = require('react-dom/server').renderToString;


const app = express();


app.get('/', (req, res) => {
  const html = renderToString(
    <html>
      <head>
        <title>SSR Example</title>
      </head>
      <body>
        <div id="root">Hello World!</div>
      </body>
    </html>
  );


  res.send(`
    <!DOCTYPE html>
    <html>
      <head>
        <title>SSR Example</title>
      </head>
      <body>
        <div id="root">${html}</div>
      </body>
    </html>
  `);
});


app.listen(3000, () => {
  console.log('Server is listening on port 3000');
});




上面的代码创建了一个Express应用程序,并在根路径上提供了一个响应。该响应使用React渲染一个HTML字符串,并将其包含在完整的HTML页面中。

请注意,上面的代码仅提供了一个简单的示例,实际的实现可能更复杂,取决于您的需求。在实际项目中,您可能需要处理数据请求,状态管理,路由等。



前端实现ssg




    首先,了解什么是静态站点生成器 (SSG, Static Site Generator)。它是一种生成静态网页的工具,通过将动态数据与静态模板结合,生成预先渲染的静态 HTML 文件。

实现静态站点生成器的步骤如下:

选择合适的技术栈:选择一个合适的静态站点生成器框架。

设计模板:设计模板来控制静态站点的布局,样式和交互。

编写数据:编写需要展示的数据,可以是 markdown 文件,JSON 文件等。

生成静态站点:使用静态站点生成器把模板和数据结合,生成静态站点。

部署站点:将生成的静态站点部署到 Web 服务器上,供用户访问。





```typescript
import type { NextPage, GetStaticProps } from 'next'


// 避免 TS 报错,预定义 SSG 数据结构
type HomeProps = {
  list: string[]
}


const Home: NextPage<HomeProps> = (props) => {


  // 取出 SSG 数据
  const { list = [] } = props


  return (
    <>
      <p>hello user!</p>
      {
        list.map((item: any) => <p key={item}>
          {item}
        </p>)
      }
    </>
  )
}


export default Home


// 实现 SSG
export const getStaticProps: GetStaticProps = async () => {
  const { data, status } = await getAjaxData();


  // return 出的内容可以通过组件的 Props 取到
  return {
    props: {
      list: data
    }
  };
};

前端服务器渲染 (SSR, Server-Side Rendering) 和前端静态站点生成器 (SSG, Static Site Generator) 的优缺点如下:

优点:

SSR:

搜索引擎友好,因为它的内容在服务器端渲染,可以被搜索引擎爬取到。

加载速度快,因为第一次渲染在服务器端完成,客户端只需要加载预渲染的 HTML。

可以使用任意的 JavaScript 框架,因为它支持客户端 JavaScript 框架。

SSG:

部署方便,只需要静态文件,可以直接部署在任何 Web 服务器上。

更快的构建速度,因为没有在运行时进行渲染,可以在预先生成静态文件。

资源开销小,因为它不需要使用服务器资源进行渲染,可以节省资源。

缺点:

SSR:

服务器资源需求高,因为需要在服务器端渲染每个请求,所以服务器需要充足的资源。

编写复杂的代码,因为它需要在服务器端和客户端实现。

缓存困难,因为每个请求都需要渲染。

SSG:文章来源地址https://www.toymoban.com/news/detail-485208.html

搜索引擎

到了这里,关于前端ssr跟ssg的区别的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • selenium.common.exceptions.WebDriverException: Message: An unknown server-side error occurred while

    运行appium来测试用例的时候,报错:   解决思路: 这个报错是你掉了一些appium不支持的方法 driver.close()这个是selenium中的,你换成driver.close_app()或者driver.quit()就正常 结果:成功解决!

    2024年02月11日
    浏览(50)
  • 【Appium】Failed to create session. An unknown server-side error occurred while processing the command

    报错信息: 遇到这些错误的时候,我们要把 手机开发者模式的这三个选项都打开 : 因为它要安装一个软件: 第一次调试的时候手机端会弹出来个密钥确定的窗口,大概意思就是是否同意这个计算机对自己的电脑进行调试,要点同意。 然后 手机一定要安装好要进行调试的软

    2024年02月16日
    浏览(63)
  • appium踩坑(VIVO手机)报错:An unknown server-side error occurred while processing the command.Original error

    appium报错:Failed to create session. An unknown server-side error occurred while proces....... 1、appium管理员身份运行,重新填写配置中的ANDROID_HOME和JAVA_HOME 2、appium地址从127.0.0.1 改为0.0.0.0 3、运行Inspector host地址改为localhost其他保持不变 可成功运行Inspector,不知道哪一步解决的,总之在127.0

    2024年04月28日
    浏览(43)
  • Appium如何解决报错:An unknown server-side error occurred while processing the command. Original error: Er

    使用appium客户端连接小米手机失败,完整报错信息如下: An unknown server-side error occurred while processing the command. Original error: Error executing adbExec. Original error: ‘Command ‘{已隐藏}/Library/Android/sdk/platform-tools/adb -P 5037 -s fca2117a shell settings delete global hidden_api_policy_pre_p_apps’ exited with c

    2024年04月15日
    浏览(63)
  • Vue面试之csr与ssr渲染的区别

        最近在整理一些前端面试中经常被问到的问题,分为vue相关、react相关、js相关、react相关等等专题,可持续关注后续内容,会不断进行整理~ CSR(Client-Side Rendering)和SSR(Server-Side Rendering)是两种不同的前端渲染方式,它们在页面加载和渲染的过程中有一些显著的区别。

    2024年02月01日
    浏览(42)
  • 单页面(SPA)与服务端渲染(SSR),概念、区别,优缺点

    什么是单页面应用? 什么是多页面应用? 二者有什么区别? 1、单页面应用与多页面应用: 单页面顾名思义就是整个应用只有一个Html页面,页面的切换其实是组件的切换。这样设计的好处就是不进行页面的切换应用会更加流畅,用户体验好,不需要记载整个页面。良好前后

    2024年02月14日
    浏览(45)
  • 个人建站前端篇(二)项目采用服务端渲染SSR

    更好的SEO 首屏加载速度更快,用户体验更好 可以使用相同的语言以及相同的声明式、面向组件的心智模型来开发整个应用,而不需要在后端模板系统和前端框架之间来回切换。 Nuxt是一个构建于 Vue 生态系统之上的全栈框架 Quasar是基于 Vue 的完整解决方案 Vite 提供了内置的

    2024年02月19日
    浏览(44)
  • 极致性能优化:前端SSR渲染利器Qwik.js

    前端性能已成为网站和应用成功的关键要素之一。用户期望快速加载的页面和流畅的交互,而前端框架的选择对于实现这些目标至关重要。然而,传统的前端框架在某些情况下可能面临性能挑战且存在技术壁垒。 在这个充满挑战的背景下,我们引入了 Qwik.js 框架。Qwik.js 不仅

    2024年02月05日
    浏览(64)
  • 极致性能优化:前端SSR渲染利器Qwik.js | 京东云技术团队

    前端性能已成为网站和应用成功的关键要素之一。用户期望快速加载的页面和流畅的交互,而前端框架的选择对于实现这些目标至关重要。然而,传统的前端框架在某些情况下可能面临性能挑战且存在技术壁垒。 在这个充满挑战的背景下,我们引入了 Qwik.js 框架。Qwik.js 不仅

    2024年02月05日
    浏览(41)
  • vue服务端渲染SSR

    一:ssr的理解 1、服务端渲染 Server Side Render SSR解决方案,后端渲染出完整的首屏的dom结构返回,前端拿到的内容包括首屏及完整spa结构,应用激活后依然按照spa方式运行,这种页面渲染方式被称为服务端渲染 (server side render) 二:Vue SSR实战 1、新建工程 vue-cli创建工程即可 2、

    2024年02月10日
    浏览(40)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包