后端路由
后端路由是利用后端處理URL與頁面之間的映射關系.使用后段路由訪問頁面時,首先將請求發(fā)送服務器,服務器使用jsp或php動態(tài)地將數據添加到頁面中,并且返回已經渲染好的html+css.在該域名中進行跳轉會進行重復請求服務器,服務器再次渲染頁面并進行返回.后端路由對SEO很友好.但是項目邏輯比較混亂,可讀性較差,維護成本大.
后端路由進行頁面訪問(jsp)
前端路由是一種不用使瀏覽器刷新來進行頁面跳轉的技術,通常用來構建SPA(單頁應用)
在處理多個頁面時,服務器會對URL進行正則匹配,并且最后交給一個Controller來處理.最終生成HTML返回給前端.
前后端分離
后端只提供數據,不提供頁面相關的結構.前端通過ajax請求來動態(tài)地請求服務器,此時已可以請求頁面中部分的html代碼來進行懶加載.
使用ajax
前端路由SPA
瀏覽器中顯示的大部分內容都是有前端寫的js代碼在瀏覽器中執(zhí)行并渲染出來的網頁,整個網頁只有一個html頁面,在請求發(fā)生后,瀏覽器會將html和css和全部的js下載下來,并且將js分為不同的塊,在url發(fā)生變化后將抽取出的js渲染成html到頁面上
spa
前端路由改變URL的3種方法:
1.改變url的hash
location.hash = 'index'
2.進行history.pushState
history.pushState([data:{}],[title:string],[url:string])
使用這種模式會將url壓入棧中,并且使后退按鈕變?yōu)榭捎?使用后退會進行出棧操作history.back()
,或history.go(-1)
3使用history.replace
history.replace([data:{}],[title:string],[url:string])
使用這種模式會對url進行替換,并不會壓入棧中.