前端路由和後端路由

前端路由的典型:ng-route,後端路由典型:express (結合模板,返回的是html文件,感受模板略像jsp,沒有分離)javascript

前端路由根據不一樣的url展現頁面,服務端根據 url 的不一樣返回不一樣的頁面實現的。在單頁面應用,大部分頁面結構不變,只改變部份內容的使用html

優勢
用戶體驗好,不須要每次都從服務器所有獲取,快速展示給用戶
缺點
使用瀏覽器的前進,後退鍵的時候會從新發送請求,沒有合理地利用緩存
單頁面沒法記住以前滾動的位置,沒法在前進,後退的時候記住滾動的位置
前端

 

因爲單頁Web應用在一個頁面中顯示全部的內容,因此不能使用瀏覽器的前進後退功能,全部的頁面切換須要本身創建堆棧管理,固然此問題也有解決方案,好比利用URI中的散列+iframe實現。java

初始加載慢 爲實現單頁Web應用功能及顯示效果,須要在加載頁面的時候將JavaScript、CSS統一加載,部分頁面能夠在須要的時候加載。因此必須對JavaScript及CSS代碼進行合併壓縮處理,若是使用第三方庫,建議使用一些大公司的CDN,所以帶寬的消耗是必然的。express

 


簡單的說,咱們打開一個頁面,這個頁面是個單頁應用:http://www.spa.com/
因此它僅僅只有一個頁面,不過卻作有好幾個 URL:
後端

  1. http://www.spa.com/a  
  2. http://www.spa.com/b  
  3. http://www.spa.com/c  


這些 URL 不會直接傳給服務器,而是會被瀏覽器消化處理掉.瀏覽器

後端路由:緩存

每跳轉到不一樣的URL,都是從新訪問服務端,而後服務端返回頁面,頁面也能夠是服務端獲取數據,而後和模板組合,返回HTML,也能夠是直接返回模板HTML,而後由前端js再去請求數據,使用前端模板和數據進行組合,生成想要的HTML。
服務器

相關文章
相關標籤/搜索