这里引入一个概念SPA(single Page Application), 接着上次的例子,我们在页面底部做了一个Tab的菜单,点击不同的按钮应该是显示不同的内容。
按传统的MVC的思维,我要在Controller的Action里返回不同的View,这个是服务器端渲染的多页面方案。它的优势是什么:
SEO(搜索引擎优化);预先渲染的HTML页面会比较快,适合比较慢速的网络;支持IE8以下浏览器
页面的导航是在后端的Controller里控制的,不同的Action就是不同的URL
我们换一个思维:假如我们做APP,服务器端则完全只是提供接口,并不提供页面的导航,页面的导航是由APP自己控制。
假如我们要同时做APP和手机网站,如果选择后端导航,后端我要写2套,一套是纯粹的接口给APP用,另一套是给手机网站用。
如果选择前端导航,则后端我只要写一套,手机网站也是用APP的接口。
优点:
1、用户体验好、快,内容的改变不需要重新加载整个页面。基于上面一点,SPA相对对服务器压力小。
2、良好的前后端分离。SPA和RESTful架构一起使用,后端不再负责模板渲染、输出页面工作,web前端和各种移动终端地位对等,后端API通用化。
2、良好的前后端分离。SPA和RESTful架构一起使用,后端不再负责模板渲染、输出页面工作,web前端和各种移动终端地位对等,后端API通用化。
3、同一套后端程序代码,不用修改就可以用于Web界面、手机、平板等多种客户端;
缺点:
对开发人员技能水平、开发成本高。