hash和history的優缺點


hash路由

hash路由的優點

  • 兼容性比較好,兼容性達到了ie8
  • 絕大數框架的框架都基本支持hash路由方式
  • 除了會發送ajax和資源加載之外不會發送其他請求
  • 不需要在服務端進行任何設置和開發

hash路由的缺點

  • 服務端無法准確捕獲路由的信息
  • 對於需要錨點功能的需求會與當前路由機制發生沖突
  • 對於需要重定向的操作,后段無法獲取url全部內容,導致后台無法得到url數據,典型的例子就是微信公眾號的oauth驗證。

browser路由

browser路由的優點

  • 當發生路由重定向時不會丟失url數據 ,后端也可以拿到這個數據
  • history 沒有#,url的改變會向服務器發請求;彌補了hash的錨點缺陷(本來hash有錨點功能,是做頁面定位的,但是用來做路由就不行了),可以在url里傳參也可以把參數放在一個特定的對象里面
  • 當然,絕大多數框架一樣實現了 browser路由的方式
  • 后端可以准確追蹤到路由
  • 可以使用history.state獲取路由的信息

使用browser的缺點

  • 兼容性不如hash 。兼容性只到ie10
  • 需要后端支持,每次返回html文檔


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM