spa ssr区别

https://www.cnblogs.com/tiedaweishao/p/6644267.html

里面的关键语句为:

"

我们并没有多余的dom元素,就只有一个div,那么页面要怎么呈现呢?答案是js append,对,下面的那些js会负责innerHTML。而js是由浏览器解释执行的,所以呢,我们称之为浏览器渲染,这有几个致命的缺点:

  1. js放在dom结尾,如果js文件过大,那么必然造成页面阻塞。用户体验明显不好(这也是我我在公司反复被产品逼问的事情)
  2. 不利于SEO
  3. 客户端运行在老的JavaScript引擎上

"

vue 浏览器与服务器渲染:

“ssr 有两个入口文件,client.js 和 server.js, 都包含了应用代码,webpack 通过两个入口文件分别打包成给服务端用的 server bundle 和给客户端用的 client bundle. 当服务器接收到了来自客户端的请求之后,会创建一个渲染器 bundleRenderer,这个 bundleRenderer 会读取上面生成的 server bundle 文件,并且执行它的代码, 然后发送一个生成好的 html 到浏览器,等到客户端加载了 client bundle 之后,会和服务端生成的DOM 进行 Hydration(判断这个DOM 和自己即将生成的DOM 是否相同,如果相同就将客户端的vue实例挂载到这个DOM上, 否则会提示警告)。

然而,它其实和其他的 SPA (Single Page Application 单页应用)来说没有任何的区别,最终是通过前端的路由去控制页面的显示。单页应用虽然在交互体验上比传统多页更友好,但它也有一个天生的缺陷,就是对搜索引擎不友好,不利于爬虫爬取数据。

正所谓成也萧何,败也萧何。

讲人话就是,搜索引擎搜不到我的博客啊~哭...

那什么对搜索引擎和爬虫友好的哪?答案就是静态页,而非浏览器渲染,这就需要服务器直接渲染,也就 SSR(Server Side Render)。

https://ssr.vuejs.org/zh/

爬虫面临的三个问题, 你知道吗?

https://www.jianshu.com/p/636966f04408

   “其实,总结一些,这些弊端归根结底,是因为爬虫程序并非是浏览器,没有javascript解析引擎所致。针对这个问题,目前主要的应对策略就是在爬虫中引入Javascript 引擎,如PhantomJS,但是又有着明显的弊端,如服务器同时有多个爬取任务时,资源占用太大。”

 

我的理解:

express, 前端无论是用ejs,jade,都是SSR,因为在服务器端解释好了一切,到浏览器,只显示了html元素;

而每一次页面的更新,都需要更新整个页面,但这个时候,对前端要求高的情况下,需要用ajax进行局部的刷新,这个是SEO不喜欢的,但没有办法,不能十全十美。

  而用webpack开发的过程中,因为有很多dev的中间件,使得开发过程中,所见即所得,一切的变更都会立马显示在页面上,这些都是这些dev中间件的功能 ,但最后他生成的产物 是一堆:js! 这就直接将这模块,变成了一个SPA,即由浏览器来解释,这对于SEO以及前端的体验也是不好的。

“ 爬虫程序并非是浏览器,没有javascript解析引擎所致”直接决定了通过打包出来的js所形成的SPA,不能被爬虫所SEO。

KOA与express的区别,是架构上的调整,与这个前后端 没有太大的关系。

jsp ,thymleaf ,都是类似于ejs,典型的SSR使用。

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

dualven_in_csdn

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值