现代化的服务端渲染
渲染#
什么是渲染,渲染 = 数据和模板添加到一起
对于前端开发者来说最常见的场景就是,向后端请求接口,把请求到的数据通过模板绑定语法,将数据绑定到页面中
最终呈现给用户,那么这个过程中就叫做渲染,渲染的本质其实就是字符串的替换实现方式有很多种
传统的服务端渲染
服务端渲染原理/流程: 1、客户端发起请求 2、服务端响应请求通过数据库查询页面所需数据 3、服务端得到所需的数据 4、服务端将数据和页面模板渲染为HTML 5、服务端将HTML返还给客户端 6、客户端收到内容直接展示给浏览器了 优点:有利于SEO,有助于搜索引擎优化 缺点: 1、前后端代码完全耦合在一起,不利于开发维护 2、前端没有足够发挥空间 3、服务端压力大 4、用户体验一般
客户端渲染
基于上面的缺点,有基于Ajax技术大范围运用,诞生了客户端渲染 服务端只需要处理数据接口接口,这样就实现前后端分离了 后端处理数据接口 / 前端负责将接口数据渲染都页面中,前端更为独立,不再受制与后端 客户端渲染原理: 1、客户端请求一个地址 2、服务端返回空白的HTML页面 / 无实质内容 只有一些js脚本 3、页面拿到返回的内容 加载里面js代码, 如果js代码里面有动态数据 会发起Ajax请求,服务端响应这个请求,去服务器查询数据,然后返回数据 4、客户端拿到数据以后渲染页面 优点: 1、用户体验好 2、开发效率高 3、渲染性能好 4、可维护性好 缺点: 首屏渲染慢:客户端请求一个地址,服务端会响应请求,返回空白的HTML结构 携带js脚本,客户端加载返回的HTML结构,也加载js脚本,根据js脚本 渲染页面,如果js里面有动态内容会发起Ajax请求,综上所述客户端渲染请求次数较多 这样的话就造成首屏渲染慢 不利于SEO:客户端渲染SEO几乎为0,是因为搜索引擎爬取页面的时候无法找到关键字 因为所有的内容都是根据js脚本生成的,所以对搜索引擎不够友好
同构渲染
同构渲染原理:同构渲染 = 后端渲染(服务器渲染) + 前端渲染 1、客户端请求一个地址 2、查询页面所需数据 也就是请求接口 3、返回数据 4、生成渲染页面及生成客户端SPA脚本,也包括SPA单页面程序运行所包含的脚本 5、然后把HTML(渲染好的页面内容 + SPA脚本)返回 6、客户端拿到HTML内容直接呈现内容给用户,这样就不用发请求了也不用执行渲染了 7、客户端通过页面中js脚本,把当前页面激活微SPA应用,之后的页面交互都是客户端渲染了 以上就是同构渲染的流程 优点:核心解决SEO和首屏渲染慢的问题, 拥有传统服务端的优点也有客户端渲染的优点 缺点: 1、开发条件有限:浏览器特定的代码只能在某些声明周期钩子函数中使用 2、一些外部扩展可能需要特殊处理才能在服务端渲染中运行 3、不能在服务端渲染期间操作DOM 3、某些代码操作需要区分环境 5、设计构建和部署的要求更多 客户端渲染,仅仅要构建客户端即可,可以部署在任意服务器中 同构渲染需要构建两个端,而且只能部署在Node.Server中 6、更多的服务端负载 在Node中渲染完整的应用程序,相比仅仅提供静态文件的服务器需要占用大量的服务器资源 如果应用在高流量环境中使用,需要准备向相应的服务器负载均衡,需要更多的服务端渲染优化工作处理
服务端渲染使用建议
1、首屏渲染速度是否真的重要,有时候用户可能不在意初始的那几秒,可以交给骨架屏处理
2、是否真的需要SEO,如果是公司内部的管理系统那就不需要SEO了
本文来自博客园,作者:Tipsy(微醺),转载请注明原文链接:https://www.cnblogs.com/dj2016/articles/17339276.html
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 记一次.NET内存居高不下排查解决与启示