自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

面試被問及 Hash 與 History 的區(qū)別,該怎么回答?

開發(fā) 前端
hash 通過監(jiān)聽瀏覽器 onhashchange 事件變化,查找對應(yīng)路由應(yīng)用。通過改變 location.hash 改變頁面路由。history Interface 是瀏覽器歷史記錄棧提供的接口,可通過 back、forward、go 等。

[[442954]]

為什么推薦使用 hash 模式?

創(chuàng)建項(xiàng)目時(shí),vue-router 默認(rèn)使用 hash 模式,設(shè)置模式的時(shí)候到底該使用hash還是history模式呢?

先了解它們的實(shí)現(xiàn)原理,搞清楚之間的區(qū)別,就知道什么時(shí)候該選擇什么模式了。

一、實(shí)現(xiàn)原理

hash 原理

hash 通過監(jiān)聽瀏覽器 onhashchange 事件變化,查找對應(yīng)路由應(yīng)用。通過改變 location.hash 改變頁面路由。

history 原理

利用 html5 的history Interface 中新增的 pushState() 和 replaceState() 方法,改變頁面路徑。

history Interface 是瀏覽器歷史記錄棧提供的接口,可通過 back、forward、go 等,可以讀取歷覽器歷史記錄棧的信息,pushState、repalceState 還可以對瀏覽器歷史記錄棧進(jìn)行修改。

hash 與 history 區(qū)別對比:

二、為什么推薦使用 hash 模式?

理由:

1、從兼容角度分析。

hash 可以兼容到 IE8,而 history 只能兼容到 IE10。

2、從網(wǎng)絡(luò)請求的角度分析。

使用 hash 模式,地址改變時(shí)通過 hashchange 事件,只會(huì)讀取哈希符號(hào)后的內(nèi)容,并不會(huì)發(fā)起任何網(wǎng)絡(luò)請求。

而 history 模式,每訪問一個(gè)頁面都要發(fā)起網(wǎng)絡(luò)請求,每個(gè)請求都需要服務(wù)器進(jìn)行路由匹配、數(shù)據(jù)庫查詢、生成HTML文檔后再發(fā)送響應(yīng)給瀏覽器,這個(gè)過程會(huì)消耗服務(wù)器的大量資源,給服務(wù)器的壓力較大。

3、服務(wù)器配置角度分析。

hash 不需要服務(wù)器任何配置。

history 進(jìn)行刷新頁面時(shí),無法找到url對應(yīng)的頁面,會(huì)出現(xiàn) 404 問題。因?yàn)橛蛎竺娴穆酚墒怯汕岸丝刂频模蠖酥荒鼙A粲蛎糠?,所以就?huì)造成頁面丟失的問題,需要服務(wù)器端添加一個(gè)回退路由,就能解決該問題了。

hash 模式不足

1、hash 模式中的 # 也稱作錨點(diǎn),這里的的 # 和 css 中的 # 是一個(gè)意思,所以在 hash 模式內(nèi),頁面定位會(huì)失效。

2、hash 不利于 SEO(搜索引擎優(yōu)化)。

3、白屏?xí)r間問題。瀏覽器需要等待 JavaScript 文件加載完成之后渲染 HTML 文檔內(nèi)容,用戶等待時(shí)間稍長。

 

責(zé)任編輯:姜華 來源: 今日頭條
相關(guān)推薦

2023-04-10 09:32:00

DubboJava

2019-10-18 14:54:04

Kafka寫入磁盤

2021-03-24 10:25:24

優(yōu)化VUE性能

2022-09-13 14:44:40

HashMap哈希表紅黑樹

2019-12-09 10:37:27

Hash算法面試

2013-08-21 13:43:16

架構(gòu)師架構(gòu)師面試職場面試

2024-02-26 00:26:16

ChatGPTMQQueue

2011-06-30 17:58:30

網(wǎng)站被K

2023-11-15 07:54:03

HashMap數(shù)據(jù)結(jié)構(gòu)

2017-12-08 11:14:21

2019-02-15 20:00:49

軟件測試工程師面試

2024-01-01 08:19:32

模式History前端

2019-11-19 16:10:24

面試官Java編程語言

2009-07-21 14:44:15

求職面試自殺式回答

2018-04-09 07:26:15

2025-03-07 08:44:47

Typescriptiinterfacetype

2022-09-05 09:02:01

服務(wù)器CPU服務(wù)

2025-04-23 08:10:00

2021-04-13 10:41:25

Redis內(nèi)存數(shù)據(jù)庫

2019-11-26 08:24:13

TCP擁塞控制網(wǎng)絡(luò)協(xié)議
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)