国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 語言 > JavaScript > 正文

詳解SPA中前端路由基本原理與實現方式

2024-05-06 15:30:09
字體:
來源:轉載
供稿:網友

在講前端路由之前,先說下后端路由,以及為什么出現了前端路由。

后端路由: 瀏覽器在地址欄中切換不同的url時,每次都向后臺服務器發出請求,服務器響應請求,在后臺拼接html文件傳給前端顯示,java web中的jsp就是如此實現的。常用的后臺MVC模式的基本路由處理流程:瀏覽器輸入一個url請求,從中找到Controller和Action的值,將請求傳遞給Controller處理,Controller獲取Model數據對象,并且將Model傳遞給View,最后View呈現界面。

例如輸入一個url:localhost/home/index

其中localhost是域名,對應結構{controller}/{action}/{id}

優點:分擔了前端的壓力,html和數據的拼接都是由服務器完成。 缺點:當項目十分龐大時,加大了服務器端的壓力,同時在瀏覽器端不能輸入制定的url路徑進行指定模塊的訪問。另外一個就是如果當前網速過慢,那將會延遲頁面的加載,對用戶體驗不是很友好。

前端路由: 隨著(SPA)單頁應用的不斷普及,前后端開發分離,目前項目基本都使用前端路由,在項目使用期間頁面不會重新加載。

優點:1、用戶體驗好,和后臺網速沒有關系,不需要每次都從服務器全部獲取,界面展現快。2、可以再瀏覽器中輸入指定想要訪問的url路徑地址。3.實現了前后端的分離,方便開發。有很多框架都帶有路由功能模塊。 缺點:1、對SEO不是很友好2、在瀏覽器前進和后退時候重新發送請求,沒有合理緩存數據。3,初始加載時候由于加載所有模塊渲染,會慢一點。

前端路由目前主要有兩種方法:

1、利用url的hash,就是常用的錨點(#)操作,類似頁面中點擊某小圖標,返回頁面頂部,JS通過hashChange事件來監聽url的改變,IE7及以下需要輪詢進行實現。一般常用框架的路由機制都是用的這種方法,例如Angualrjs自帶的ngRoute和二次開發模塊ui-router,react的react-route,vue-route…

2、利用HTML5的History模式,使url看起來類似普通網站,以”/”分割,沒有”#”,但頁面并沒有跳轉,不過使用這種模式需要服務器端的支持,服務器在接收到所有的請求后,都指向同一個html文件,通過historyAPI,監聽popState事件,用pushState和replaceState來實現。

SPA 前端路由原理與實現方式

通常 SPA 中前端路由有2中實現方式,本文會簡單快速總結這兩種方法及其實現:

    修改 url 中 Hash 利用 H5 中的 history

Hash

我們都知道 url 中可以帶有一個 hash, 比如下面 url 中的 page2

https://www.abc.com/index.html#page2

window 對象中有一個事件是 onhashchange,以下幾種情況都會觸發這個事件:

    直接更改瀏覽器地址,在最后面增加或改變#hash; 通過改變location.href或location.hash的值; 通過觸發點擊帶錨點的鏈接; 瀏覽器前進后退可能導致hash的變化,前提是兩個網頁地址中的hash值不同。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

主站蜘蛛池模板: 永和县| 霍邱县| 重庆市| 兴化市| 连云港市| 荣昌县| 西乡县| 贵南县| 肇东市| 千阳县| 保靖县| 民县| 锦屏县| 沁水县| 隆回县| 任丘市| 文登市| 久治县| 玉门市| 武平县| 公主岭市| 连云港市| 霞浦县| 毕节市| 绥化市| 双峰县| 宜丰县| 西青区| 钟祥市| 林周县| 绍兴县| 精河县| 开化县| 宁城县| 玉山县| 云和县| 延川县| 繁昌县| 和顺县| 天全县| 金华市|