前后端分离

为什么要WEB前后端分离

  • 后端只提供API接口(尽量做restful服务化),后端保证API和服务稳定。前端调用AJAX实现数据的呈现。
    前端职责:页面UI,页面展示、交互、渲染,用户体验等。
    后端职责:数据存储,业务逻辑,RESTful 接口,性能、可用性、伸缩性、扩展性、安全性等。
  • 像React、Vue、Angular我们可以轻松的构建一个无需服务器渲染就可以展示的网站,这类框架也提供了前端路由功能,后台可以不在控制路由的跳转,将原本属于前端的业务逻辑全部丢给前端,这样前后端分离可以说是最彻底的。
  • 降低前端对后端的依赖,提高可维护性,让前后端的职责更清晰,分工更合理。
  • 服务端负责业务/数据接口,前端负责展现/交互逻辑。

前后端分离的优势

  • 彻底解放前端
    前端不再需要向端台提供模板或是后台在前端html中嵌入后端代码,前端通过AJAX调研后端接口,数据逻辑放在前端,由前端维护。

  • 提高工作效率,分工更加明确
    前后端分离的工作流程可以使前端只关注前端的事,后台只关心后台的活,两者开发可以同时进行,在后台还没有时间提供接口的时候,前端可以先将数据写死或者调用本地的json文件即可,页面的增加和路由的修改也不必再去麻烦后台,开发更加灵活。

  • 局部性能提升
    通过前端路由的配置,我们可以实现页面的按需加载,无需一开始加载首页便加载网站的所有的资源,服务器也不再需要解析前端页面,在页面交互及用户体验上有所提升。

  • 降低维护成本
    通过目前主流的前端MVC框架,我们可以非常快速的定位及发现问题的所在,客户端的问题不再需要后台人员参与及调试,代码重构及可维护性增强。

考虑到seo的问题

  • 对于需要做SEO的产品,这种方式就有点力不从心了。因为,重要内容都在前端进行异步组装,这样是无法被搜索引擎收录的,所以必须要考虑服务端渲染才可以被SEO。
  • 分离为什么不全部走ajax,页面就不需要任何服务端语言了。但实际场景并非如此,首先有些数据总是要生成页面时就已经同步获取的,且全异步对SEO不利、纯html页面没有include功能等。
    随着Node.js技术的普及,我们把渲染的工作从服务端抽出来到前端,明确的前后端职责划分。

解决跨域问题

  • 代码里面可以通过header函数在后端框架的入口做限制
  • 也可以在nginx中配置代理
  • jsop的方式

前端控制跳转,怎么保持会话(登录状态)

  • 存一个全局变量可不可以,用localStorage可不可以,用cookie可不可以。
  • 微信api的实现,是url中必须带上?access_token=[xxx]来判断状态的, 这样你就需要每个api提交都带上access_token参数
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容