1.什么是路由javascript
简单的说,路由是根据不一样的 url 地址展现不一样的内容或页面;html
二、什么是前端路由?前端
前端路由就是把不一样路由对应不一样的内容或页面的任务交给前端来作,以前是经过服务端根据 url 的不一样返回不一样的页面实现的;java
三、什么是后端路由?node
(参考连接http://www.cnblogs.com/yuqing6/p/6731980.html)angularjs
经过用户请求的url导航到具体的html页面;每跳转到不一样的URL,都是从新访问服务端,而后服务端返回页面,页面也能够是服务端获取数据,而后和模板组合,返回HTML,也能够是直接返回模板HTML,而后由前端js再去请求数据,使用前端模板和数据进行组合,生成想要的HTML。web
四、前端路由的两种实现原理ajax
(参考连接https://segmentfault.com/a/1190000007238999)segmentfault
①、History API后端
重点说其中的两个新增的API history.pushState 和 history.replaceState;
②、hash
根据监听哈希变化触发的事件 —— hashchange 事件;
五、前端路由优缺点
优势:
1.从性能和用户体验的层面来比较的话,后端路由每次访问一个新页面的时候都要向服务器发送请求,而后服务器再响应请求,这个过程确定会有延迟。而前端路由在访问一个新页面的时候仅仅是变换了一下路径而已,没有了网络延迟,对于用户体验来讲会有至关大的提高。
2.在某些场合中,用ajax请求,可让页面无刷新,页面变了但Url没有变化,用户就不能复制到想要的地址,用前端路由作单页面网页就很好的解决了这个问题。
缺点:
使用浏览器的前进,后退键的时候会从新发送请求,没有合理地利用缓存。
六、前端路由在不少开源的js类库框架中都获得支持,如angularJS,Backbone,Reactjs等等。
(参考连接http://web.jobbole.com/84644/)
①、AngularJS
Angular 是流行的企业级框架,许多开发人员都在使用它来构建和维护复杂的 web 应用程序。Angular 的人气很是高,包括 Domino’s Pizza, Ryanair, iTunes Connect, PayPal Checkout, 谷歌等企业都在使用它。Angular 是一个由谷歌支持的开源框架。Angular 自称是 HTML 的一个扩展,用来构建复杂的 web 应用程序。
Angular 是一个 MVC 类型的框架。它提供了模型和视图之间的双向数据绑定。该数据绑定容许每当数据改变时,两边自动更新。 它使你可以构建可复用的视图组件。它提供了一个服务框架,使得后端-前端服务通讯更容易。最后,它只是普通的 JavaScript。
②、React
React 自称是一个用于构建用户界面的 JavaScript 库。React 主要是 MVC 中的 V。它的重点彻底在 MVC 的 V 部分,忽视应用程序架构的其他部分。它提供了一个组件层,使得建立 UI 元素,组合元素变得更容易。它使用虚拟 DOM,所以优化了渲染,且容许从 node.js 渲染 React。此外,它实现了单向响应的数据流,所以比其余框架更容易理解和使用。
③、Backbone
Backbone 提供一个完整的 MVC 框架以及路由。模型容许键-值绑定和数据变化的事件处理,Backbone 是我建立简单 web 应用程序的首选框架。
.....(参考连接http://web.jobbole.com/84644/)