LeoWangJ / blog

紀錄學習文章
1 stars 0 forks source link

單頁面應用(SPA) #2

Open LeoWangJ opened 5 years ago

LeoWangJ commented 5 years ago

由於AJAX的出現,使得我們在同一個頁面上不用刷新就能夠處理資料(CRUD),來進行畫面的互動效果,進而達到單頁面的效果。

但是透過AJAX只能達到單頁面的操作,切換到別的路徑時畫面還是會重整一次才顯示,這樣會照成使用者的體驗不好,那現今各大框架的路由是怎麼解決這個問題的呢?

透過兩種方式來解決:

  1. 路徑hash的判斷。由於路徑後面加上#之後,不會再隨著路徑不同而去向後端發出請求,也不會重新加載頁面,透過onhashchange方法可以監聽hash值有沒有發生改變。

  2. 由於HTML5 histroy API 多了pushState,replaceState這兩個方法,可以改變當前的url,但是不會向後端發出請求。