javascript - 请问前后端分离的spa应用是怎么一回事儿?
ringa_lee
ringa_lee 2017-05-16 13:35:49
0
6
675

作为一个自学后端的前端不是很懂,spa是访问网址时一次性返回去,之后靠前端路由切换显示么?然后服务器只负责对ajax返回数据?

ringa_lee
ringa_lee

ringa_lee

全部回复(6)
Peter_Zhu

你只需要提供一个url链接到前端的index.html页面,然后写好接口API就行了,其他的都交给前端处理。

迷茫

是的,你理解的没错
只有一个入口文件,靠路由切换组件,后台提供api

伊谢尔伦

1.是不是一次性返回取决于你有没有做了代码异步加载,提取公共部分的处理
2.spa页面的切换是通过前端路由导航的
3.前后端完全分离,代码没有耦合,服务器只提供数据服务,前端通过ajax调用服务端接口,获得数据之后再更新页面。

希望能帮到你。

phpcn_u1582

传统:前端由多个页面组成,后端负责组织数据、实现路由、甚至生成页面内容;前端后端其实是混杂一起的;
当前:前端由单个页面或者少量页面构成(Single Page Application),前端框架负责组织路由,切换页面内容(一般将页面拆分成组件/Componet),后端只负责提供 API 服务并收发数据;
这样前后端就基本分离解耦了。

我想大声告诉你

后端只负责提供前端所需要的数据,其他页面间的切换跳转与用户的交互等逻辑的实现都由前端来完成。
spa单页面只需要一个index.html页面,作为整个项目的入口,然后引入必需的js文件,其他js文件可以按需加载,具体的页面内容可以由js动态生成渲染。有时页面的变化不是重新请求,也不是刷新,而是通过事件驱动,执行对应的方法来重新渲染当前页面。

大家讲道理

一切都要从ajax的局部刷新说起.

传统的web, 浏览器输入一个url然后返回一个页面.

后来, 人们发现这样太浪费资源啦, 比如, 我点了个赞, 那么数据库和页面上的赞数都要+1, 这个刷新页面肯定是不行的啊, 那就'局部刷新'吧.

再后来, 机智的开发者又想到, hash路径段(形如#header)是不会像服务器发请求的, 那么我们可以在点击一个锚点的时候加载一个小页面, 局部刷新, 再加上可以操作浏览器的历史记录来实现回退等功能. 那干脆就搞个前端路由吧. 于是前端路由就出现啦.

其实前端路由本质上也是一种局部刷新, 但是更规范. 这次刷新, 拉回来的是一个完整的组件, 这个组件包含了视图和数据. 这里的数据又分为两种, 一种是后端传过来的, 暂且成为数据库数据, 另一种是为了更好地管理视图而在前端生成的数据, 暂且成为视图数据.

一通乱说过后, 我们就可以好好分析一下SPA到底是个什么东西啦.

SPA是single page application的简称, 中文叫单页应用. 何为单页? 就是只有一个页面, 这个页面一般是index.html, 这是项目的入口文件. 自项目启动到结束, 浏览器中始终都是这个页面, 你看到的变化只是组件之间的创建和删除. 比如你在这个页面里引入bootstrap(不是个好主意), 那你所有的组件都会受到bootstrap的影响.

... 实在写不下去了, 剩下的太长啦. 等我哪天写个文章好好说一下. 作为的答案的话, 篇幅实在太大.

简单的来说, 就是前端提供视图, 后端提供json数据. 用后端的数据来渲染前端的页面.

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板