hash路由和history路由

2021-10-14 15:17:00 字數 1129 閱讀 5872

hash模式

url後面的有乙個#,#後面的字串,叫hash值,也叫錨點。

1)hash 值變化不會導致瀏覽器向伺服器發出請求

2)hash 改變會觸發 hashchange 事件 當hash值變化了,就會觸發事件

3)在 html5 的 history 出現前,基本都是使用 hash 來實現前端路由的

4)由於hash路由,有個#,有人說比較醜

5)hash值變化,也會引起,瀏覽器的前進和後退

6)相對於history來說,hash的相容性更好一點

7)hash本來是拿來做頁面定位的,如果拿來做路由的話,原來的錨點功能就不能用了

發起hash的方法:

window.location.hash = "position"
history模式:

hash 的傳參是基於 url 的,如果要傳遞複雜的資料,會有體積的限制,而 history 模式不僅可以在url裡放引數,還可以將資料存放在乙個特定的物件中。

1)history傳參比hash傳參再有優勢

2)使用http協議

3)history模式,會向後端發起請求,所以說,需要後端配合,不然可能會出現404

發起 history的方法:

history.pushstate(, null, id),裡面有很多種方法
1.hash路由在位址列url上有#,而history路由沒有會好看一點

2.我們進行回車重新整理操作,hash路由會載入到位址列對應的頁面,而history路由一般就404報錯了(重新整理是網路請求,沒有後端準備時會報錯)。

3.hash路由支援低版本的瀏覽器,而history路由是html5新增的api。

5.history運用了瀏覽器的歷史記錄棧,之前有back,forward,go方法,之後在html5中新增了pushstate()和replacestate()方法(需要特定瀏覽器的支援),它們提供了對歷史記錄進行修改的功能,不過在進行修改時,雖然改變了當前的url,但是瀏覽器不會馬上向後端傳送請求。

關於hash路由和history路由

1.參考文件 hash模式?history模式 window.location.hash和search掐架 2.問題 3.關於兩種路由的組成 hash模式 簡單總結 除去伺服器需要使用的,能使用的僅剩下了hash,hash改變不會重新整理頁面,hash值改變會增加歷史記錄 就是會有頁面的前進後退 號...

路由的hash和history模式

為了構建 spa 單頁面應用 需要引入前端路由系統,這也就是 vue router 存在的意義。前端路由的核心,就在於 改變檢視的同時不會向後端發出請求。為了達到這種目的,瀏覽器當前提供了以下兩種支援 history 利用了 html5 history inte ce 中新增的 pushstate ...

高階前端路由hash和history

最開始路由就是簡單的乙個url,在瀏覽器輸入url位址向伺服器傳送請求,伺服器會根據這個位址將對應的html檔案返回給瀏覽器進行渲染,如果這個頁面還用到了外部的js和css資源檔案,瀏覽器將會再傳送一次請求,伺服器才會將對應的資源返回給瀏覽器。這樣的話我們可以簡單的模擬一下,當使用者首次訪問 時,輸...