服务器端渲染和客户端渲染的区别
一、什么是服务器端渲染和客户端渲染
互联网早期 用户使用浏览器浏览的都是一些没有复杂逻辑的、 简单的页面 这些页面都是在后端将htm l 拼接好的然后将之返回给前端完整的 htm l文件浏览器拿到这个 htm l 文件之后就可以直接解析展示了 而这也就是所谓的服务器端渲染了。 而随着前端页面的复杂性提高前端就不仅仅是普通的页面展示了 而可能添加了更多功能性的组件 复杂性更大另外彼时 ajax的兴起使得业界就开始推崇前后端分离的开发模式 即后端不提供完整的html 页面而是提供一些api使得前端可以获取到 json数据然后前端拿到json数据之后再在前端进行 htm l 页面的拼接然后展示在浏览器上这就是所谓的客户端渲染了这样前端就可以专注 UI的开发后端专注于逻辑的开发。
二、服务器端渲染和客户端渲染的本质区别
最重要的区别就在于究竟是谁来完成 htm l 文件的完整拼接如果是在服务器端完成的返回客户端就是服务器端渲染反之如果前段做了更多的工作完成 htm l 拼接就是客户端渲染。
三、服务器端渲染和客户端渲染的优点
服务器端渲染优点
①前端耗时少。因为后端拼接完了 html 浏览器只需要直接渲染出来。
② 有利于 SEO。因为在后端有完整的 html 页面所以爬虫更容易爬取获得信息更有利于seo。
③ 无需占用客户端资源。 即解析模板的工作完全交由后端来做客户端只要解析标准的html页面即可这样对于客户端的资源占用更少尤其是移动端也可以更省电。
④ 后端生成静态化文件。 即生成缓存片段这样就可以减少数据库查询浪费的时间了且对于数据变化不大的页面非常高效 。
客户端渲染优点
①前后端分离。前端专注于前端 UI 后端专注于 api开发且前端有更多的选择性而不需要遵循后端特定的模板。
② 体验更好。 比如我们将网站做成 SPA或者部分内容做成 SPA这样 尤其是移动端可以使体验更接近于原生 app 。
四、服务器端渲染和客户端渲染的缺点
服务器端渲染缺点
① 不利于前后端分离开发效率低。使用服务器端渲染则无法进行分工合作则对于前端复杂度高的项目不利于项目高效开发。
② 占用服务器端资源。即服务器端完成 ht m l 模板的解析如果请求较多会对服务器造成一定的访问压力。而如果使用前端渲染就是把这些解析的压力分摊了前端而这里确实完全交给了一个服务器。
客户端渲染缺点
①前端响应较慢。如果是客户端渲染前端还要进行拼接字符串的过程需要耗费额外的
时间不如服务器端渲染速度快。
② 不利于 SEO。 目前比如百度、 谷歌的爬虫对于 SPA都是不认的 只是记录了一个页面所以 SEO很差。因为服务器端可能没有保存完整的 html 而是前端通过 js进行dom的拼接那么爬虫无法爬取信息。 除非搜索引擎的 seo可以增加对于 JavaScript 的爬取能力这才能保证 seo。
最近发现一个比较怪异的事情,在访问和登录大部分国外主机商和域名商的时候都需要二次验证。常见的就是需要我们勾选判断是不是真人。以及比如在刚才要访问Namecheap检查前几天送给网友域名的账户域名是否转出的,再次登录网站的时候又需要人机验证。这里有看到"Attention Required"的提示。我们只能手工选择按钮,然后根据验证码进行选择合适的标记。这次我要选择的是船的标识,每次需要选择三个,一...
继阿里云服务商推出轻量服务器后,腾讯云这两年对于轻量服务器的推广力度还是比较大的。实际上对于我们大部分网友用户来说,轻量服务器对于我们网站和一般的业务来说是绝对够用的。反而有些时候轻量服务器的带宽比CVM云服务器够大,配置也够好,更有是价格也便宜,所以对于初期的网站业务来说轻量服务器是够用的。这几天UCLOUD优刻得香港服务器稳定性不佳,于是有网友也在考虑搬迁到腾讯云服务器商家,对于轻量服务器官方...
hypervmart怎么样?hypervmart是一家国外主机商,成立于2011年,提供虚拟主机、VPS等,vps基于Hyper-V 2012 R2,宣称不超售,支持linux和windows,有荷兰和英国2个数据中心,特色是1Gbps带宽、不限流量。现在配置提高,价格不变,性价比提高了很多。(数据中心不太清楚,按以前的记录,应该是欧洲),支持Paypal付款。点击进入:hypervmart官方网...