網(wǎng)站建設(shè)人員配置是怎樣的泉州seo按天收費(fèi)
一:背景介紹
? ? ? ? 前端在調(diào)用后端接口獲取某一個(gè)人的評(píng)論次數(shù)、獲贊次數(shù)、回復(fù)次數(shù)。調(diào)用之后判斷后端返回過(guò)來(lái)的值。如果返回回來(lái)的值是0的話,從緩存中獲取對(duì)應(yīng)的值,如果從緩存中獲取的評(píng)論次數(shù)為空那么其他兩個(gè)的次數(shù)也為0。
?
二:思路&方案
? ? ? ? 1.明確緩存應(yīng)該如何使用
????????2.明確應(yīng)該什么時(shí)候使用緩存
????????3.明確評(píng)論和回復(fù)的邏輯關(guān)系
三:過(guò)程
什么是LocalStorage
????????localstorage 在瀏覽器的 API 有兩個(gè):localStorage 和sessionStorage,存在于 window 對(duì)象中:localStorage 對(duì)應(yīng) window.localStorage,sessionStorage 對(duì)應(yīng) window.sessionStorage。localStorage 和 sessionStorage 的區(qū)別主要是在于其生存期。localStorage
理論上來(lái)說(shuō)是永久有效的,即不主動(dòng)清空的話就不會(huì)消失,即使保存的數(shù)據(jù)超出了瀏覽器所規(guī)定的大小,也不會(huì)把舊數(shù)據(jù)清空而只會(huì)報(bào)錯(cuò)。sessionStorage
的生存期顧名思義,類似于session
,只要關(guān)閉瀏覽器(也包括瀏覽器的標(biāo)簽頁(yè)),就會(huì)被清空。
如何使用LocalStorage
//保存數(shù)據(jù)
localStorage.setItem("key","value");
//讀取數(shù)據(jù)
localStorage.getItem("key");
//刪除數(shù)據(jù)
localStorage.removeItem("key")
1.存入數(shù)據(jù)
2.讀取數(shù)據(jù)
?
?3.刪除數(shù)據(jù)
何時(shí)使用LocalStorage
- 1、登錄完成后
token
的存儲(chǔ) - 2、用戶部分信息的存儲(chǔ),比如
昵稱、頭像、簡(jiǎn)介
- 3、一些項(xiàng)目通用參數(shù)的存儲(chǔ),例如
某個(gè)id、某個(gè)參數(shù)params
- 4、項(xiàng)目狀態(tài)管理的持久化,例如
vuex的持久化、redux的持久化
- 5、項(xiàng)目整體的切換狀態(tài)存儲(chǔ),例如
主題顏色、icon風(fēng)格、語(yǔ)言標(biāo)識(shí)
使用LocalStorage注意事項(xiàng)
1.命名問(wèn)題
????????現(xiàn)在我們的線上就有這個(gè)問(wèn)題,在同源的域名下,同源的兩個(gè)項(xiàng)目的localStorage是互通的。如果我們存儲(chǔ)信息時(shí)太過(guò)于簡(jiǎn)單的話,可能會(huì)造成互相污染的現(xiàn)象。比如存儲(chǔ)用戶信息的時(shí)候,使用user來(lái)作為key存儲(chǔ),但是兩個(gè)環(huán)境都使用了這個(gè)user就會(huì)產(chǎn)生污染問(wèn)題。
2.時(shí)效性問(wèn)題
????????localStorage除非手動(dòng)進(jìn)行清除,否則的話將會(huì)一直存在。如果有一些時(shí)效性的鍵值,比如說(shuō)token,可能會(huì)過(guò)期,那么我們使用的時(shí)候就一定要設(shè)置過(guò)期時(shí)間。
3.隱蔽性問(wèn)題
????????我們所有存在localStorage里面的數(shù)據(jù)的,都是在Application里面可以直接看到的,上線之后,用戶也是可以直接看到的,但是有的數(shù)據(jù)我們并不想讓用戶看到,這時(shí)候就要考慮隱蔽性的問(wèn)題了。
四:總結(jié)
? ? ? ? 1.不應(yīng)該把經(jīng)常變動(dòng)的數(shù)據(jù)放入的緩存中。我們完全可以之后從后端獲取之后直接返回給前端,前端直接渲染就可以了。不需要做任何的邏輯操作。
? ? ? ? 2.對(duì)于評(píng)論、獲贊、回復(fù)之間的邏輯。評(píng)論和回復(fù)之間是沒(méi)有耦合關(guān)系的。我們不評(píng)論自己的內(nèi)容也完全可以回復(fù)別人的評(píng)論。所以說(shuō)不能因?yàn)樵u(píng)論是0就把回復(fù)也設(shè)置為0,邏輯上是不能自洽的。
五:升華
? ? ? ? 使用任何一個(gè)知識(shí)點(diǎn)要明確概念,明確邊界。什么時(shí)候需要使用什么時(shí)候不能使用。不是這種方式能夠?qū)崿F(xiàn)我們的功能我們就用這一種方案??梢猿龆喾N方面明確每一種方案的優(yōu)勢(shì)利弊。這樣我們才能避免風(fēng)險(xiǎn)的出現(xiàn)。對(duì)于業(yè)務(wù)的邏輯我們可以把我們想的和現(xiàn)實(shí)生活進(jìn)行一個(gè)映射,看看在我們實(shí)際應(yīng)用的時(shí)候會(huì)不會(huì)發(fā)生一些奇異的地方。