前端路由和后端路由

前端路由的典型:ng-route,后端路由典型:express (结合模板,返回的是html文件,感觉模板略像jsp,没有分离)

前端路由根据不同的url展示页面,服务端根据 url 的不同返回不同的页面实现的。在单页面应用,大部分页面结构不变,只改变部分内容的使用

优点
用户体验好,不需要每次都从服务器全部获取,快速展现给用户
缺点
使用浏览器的前进,后退键的时候会重新发送请求,没有合理地利用缓存
单页面无法记住之前滚动的位置,无法在前进,后退的时候记住滚动的位置

由于单页Web应用在一个页面中显示所有的内容,所以不能使用浏览器的前进后退功能,所有的页面切换需要自己建立堆栈管理,当然此问题也有解决方案,比如利用URI中的散列+iframe实现。

初始加载慢 为实现单页Web应用功能及显示效果,需要在加载页面的时候将JavaScript、CSS统一加载,部分页面可以在需要的时候加载。所以必须对JavaScript及CSS代码进行合并压缩处理,如果使用第三方库,建议使用一些大公司的CDN,因此带宽的消耗是必然的。


简单的说,我们打开一个页面,这个页面是个单页应用:http://www.spa.com/
所以它仅仅只有一个页面,不过却做有好几个 URL:

  1. http://www.spa.com/a  
  2. http://www.spa.com/b  
  3. http://www.spa.com/c  


这些 URL 不会直接传给服务器,而是会被浏览器消化处理掉.

后端路由:

每跳转到不同的URL,都是重新访问服务端,然后服务端返回页面,页面也可以是服务端获取数据,然后和模板组合,返回HTML,也可以是直接返回模板HTML,然后由前端js再去请求数据,使用前端模板和数据进行组合,生成想要的HTML。


原文地址:https://www.cnblogs.com/ziqian9206/p/7220372.html