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/)