1、优点
- 用户体验。spa提供了流畅的用户体验,用户的操作可以立刻得到反馈,没有冗长的跳转行为,这使得它更像一个桌面应用而不是一个web应用。
- 网络请求。spa仅在初始化时加载一次全部代码和资源,之后ajax根据需要加载必要的资源,这可以减少网络请求。
- 开发效率。避免频繁的跳转和状态同步问题,并且通过大量的现代框架(react、vue、angular)可以大大加速开发速度。
2、缺点
- 首页加载速度。因为首次加载时需要加载全量资源,会造成首次加载缓慢甚至白屏的问题。
- SEO。因为大部分的内容是由js动态生成的,这导致搜索爬虫仅能爬取少部分信息,这对seo不利。
- 前端复杂性。spa导致引入了更多的特性,比如:路由管理、状态管理等等。
- 安全问题。由于鉴权等功能被下放到了前端处理,所以安全性上相对mpa是有所上升的。
3、对于seo的一种优化方式
可以考虑使用nginx探测爬虫的爬取,一旦确定为搜索爬虫,那么就跳转到专门的预渲染服务器提供服务,比如使用:PhantomJS来作为网页的服务器,提供渲染完成的网站。
4、chrome中模拟爬虫访问
