路由 先後端渲染 url hash 和 html5 history
路由
- 路由(routing)就是經過互聯的網絡把信息從源地址傳輸到目的地址的活動
路由器提供了兩種機制:路由和傳送html
- 路由是決定數據包從來源到目的地的途徑
- 轉送將輸入端的數據轉移到合適的輸出端
路由中有一個很是重要的概念叫路由表前端
後端路由階段html5
- 後端處理URL和頁面之間的映射關係
- 每一個頁面有本身對應的網址,就是URL
- URL發送到服務器,服務器會經過正則對該URL進行匹配,而且最後交給一個Controller進行處理
- Controller進行各類處理,最終生成HTML或者數據,返回給前端
- 這就完成一個IO操做
先後端分離階段後端
- 隨着AJAX出現,有了先後端分離的開發模式
- 後端只提供API來返回數據,前端經過AJAX獲取數據,而且能夠經過JavaSCRIPT將數據渲染到頁面上
- 這樣作最大的優勢就是先後端責任明晰,後端專一於數據,前端專一於交互和可視化上
- 而且當移動端出現後,後端不須要進行任何處理,依然使用以前的一套API便可
前端渲染
SPA頁面瀏覽器
- 瀏覽器中顯示的網頁中的大部份內容,都是由前端寫的js代碼,在瀏覽器中執行,最終渲染出來的網頁
- 好處:網絡傳輸數據量小。不佔用服務端運算資源(解析模板),模板在前端(頗有可能僅部分在前端),改結構變交互都前端本身來了,改完本身調就行。
- 壞處:前端耗時較多,對前端工做人員水平要求相對較高。前端代碼較多,由於部分之前在後臺處理的交互邏輯交給了前端處理。佔用少部分客戶端運算資源用於解析模板。
後端渲染
- 服務器直接生產渲染好對應的HTML頁面, 返回給客戶端進行展現。
- 好處:前端耗時少,即減小了首屏時間,模板統一在後端。前端(相對)省事,不佔用客戶端運算資源(解析模板)
- 壞處:佔用服務器資源。
url的hash和html5的history
URL的hash服務器
- URL的hash也就是錨點(#),本質上是改變window.location的href屬性
- 咱們能夠經過直接賦值location.hash來改變href,可是頁面不發生刷新
- location.hash = 'aaa'
HTML5的history網絡
- history.pushState({}, .. , 'sss') //可返回
- history.replaceState({},'','111') //不可返回
- history.go(-1) = history.back
- history.forward() = history.go(1)
歡迎關注本站公眾號,獲取更多信息