POST TIME:2018-12-03 21:40
前些天,在天天問里面看到有個(gè)關(guān)于如何設(shè)計(jì)“清理緩存”的功能,然后思考了一下的確很多APP上都有清理緩存的功能,但是也有少部分APP上沒有清理緩存的功能,那么問題來了,緩存是什么?有什么價(jià)值?又要如何設(shè)計(jì)清理緩存功能呢?于是乎,就有了今天的這篇文章。
一、什么是緩存?緩存就是數(shù)據(jù)交換的緩沖區(qū),當(dāng)某一硬件要讀取數(shù)據(jù)時(shí),會(huì)首先從緩存中查找需要的數(shù)據(jù),如果找到了則直接執(zhí)行,找不到的話則從內(nèi)存中找。由于緩存的運(yùn)行速度比內(nèi)存快得多,故緩存的作用就是幫手硬件更快地運(yùn)行。簡(jiǎn)單的理解就是把用戶拜候的數(shù)據(jù)存在當(dāng)?shù)?,?dāng)用戶在某些情況下需要使用時(shí),直接在當(dāng)?shù)卣{(diào)取緩存的數(shù)據(jù),這樣效率較高。
二、有哪些APP緩存方式?按需緩存,是把從辦事器獲取的內(nèi)容以某種格式存放在當(dāng)?shù)匚募到y(tǒng),之后對(duì)于每次請(qǐng)求,檢查緩存中是否存在這塊數(shù)據(jù),只有當(dāng)數(shù)據(jù)不存在(或者過期)的情況下才從辦事器獲取。這樣的話,獲取數(shù)據(jù)的效率就明顯提高了。預(yù)緩存,是把內(nèi)容放在當(dāng)?shù)匾詡鋵戆莺?,別的就是在當(dāng)?shù)鼐彺鏌o需重新連接辦事器時(shí)可被編纂。編纂可能是用戶進(jìn)行“標(biāo)記記錄為已讀”或“加入保藏”,或其他類似的操作。三、為什么要有緩存?緩存的目的主要是提高APP的性能和離線拜候數(shù)據(jù),那么對(duì)于用戶來說有哪些價(jià)值?
A場(chǎng)景用戶首次打開資訊類APP首頁,loading了5秒鐘首頁資訊信息才全部展現(xiàn)出來,然后點(diǎn)擊某一條資訊,瀏覽該咨詢的詳細(xì)信息,瀏覽完再返還到首頁瀏覽其他資訊,這時(shí)候首頁加載多久才能顯示出所有資訊信息?如果還是要loading5秒鐘的話,那么用戶反復(fù)的進(jìn)入下一頁和返還首頁的過程中,會(huì)明顯感覺到首頁總是在loading,從而消耗了用戶時(shí)間,也降低了用戶體驗(yàn)。
緩存價(jià)值:提高APP性能和頁面加載效率,第一次將頁面資訊信息進(jìn)行緩存到當(dāng)?shù)?,后續(xù)在未刷新情況下直接調(diào)用當(dāng)?shù)財(cái)?shù)據(jù)而不是拜候辦事器數(shù)據(jù),來提高數(shù)據(jù)獲取的效率。
B場(chǎng)景用戶在有網(wǎng)絡(luò)的情況下,使用閱讀類APP點(diǎn)擊查看了一本小說,而后出門在地鐵上無聊想看這本小說,但這時(shí)候地鐵內(nèi)無信號(hào),如果僅僅因?yàn)闆]有信號(hào)的原因,用戶打開APP映入眼簾的就是帶有網(wǎng)絡(luò)異常的警示頁和他無法閱讀之前中意的小說的結(jié)局嗎?
緩存價(jià)值:支持離線拜候,用戶在APP離線無網(wǎng)絡(luò)的情況下,仍可以閱讀之前緩存到當(dāng)?shù)氐男≌f內(nèi)容,即解決用戶離線拜候的需求,又提高了離線情況下APP的視覺友好度。
C場(chǎng)景用戶在使用社交APP時(shí),因?yàn)橥饨缫蛩貙?dǎo)致長(zhǎng)時(shí)間處于無網(wǎng)絡(luò)的情況下,這時(shí)候他想刪除某一條聊天記錄,或者是保藏一篇美文,亦或者是給好友的動(dòng)態(tài)進(jìn)行點(diǎn)贊。那結(jié)果會(huì)是因?yàn)锳PP離線的情況下,用戶無法進(jìn)行以上的操作嘛?
緩存價(jià)值:支持用戶離線操作,對(duì)于將之前用戶瀏覽的信息緩存到當(dāng)?shù)睾?,用戶仍可在離線狀態(tài)下,對(duì)信息進(jìn)行輔助性操作,好比點(diǎn)贊、保藏、標(biāo)記等。這樣能提高用戶的滿意度。
D場(chǎng)景用戶使用短視頻APP查看了一部20M的短視頻,花費(fèi)了20M流量。當(dāng)用戶不雅觀看完就關(guān)閉APP了。那么當(dāng)用戶覺得之前不雅觀看的短視頻很精彩,想再次不雅觀看這部短視頻的時(shí)候,還需要花費(fèi)20M流量嗎?
緩存價(jià)值:減少用戶流量損耗,當(dāng)用戶第一次不雅觀看短視頻時(shí),已經(jīng)花費(fèi)必然的流量將其緩存到當(dāng)?shù)兀罄m(xù)還需要不雅觀看此短視頻,則無需花費(fèi)流量來從辦事器端獲取此短視頻,可直接在0流量情況(等同于離線)下直接不雅觀看此短視頻。
四、如何設(shè)計(jì)清理緩存功能?上述主要介紹假設(shè)的四種用戶場(chǎng)景及對(duì)應(yīng)表現(xiàn)出的緩存價(jià)值,可以必定的是APP的緩存功能是有必然的須要性。那么手機(jī)緩存只有優(yōu)點(diǎn)沒有缺點(diǎn)嘛?答案顯而易見是NO。毋容置疑的是APP的緩存會(huì)必然程度上影響到用戶手機(jī)的儲(chǔ)存空間,所以需要設(shè)計(jì)一個(gè)清理緩存的功能,以便于用戶有效的使用被釋放的存儲(chǔ)空間。那么接下來談?wù)撊绾蝸碓O(shè)計(jì)清理緩存功能呢?
是否需要用戶清理緩存1、不需要
不需要用戶清理理APP緩存的前提是,此APP不會(huì)占用用戶手機(jī)過多的存儲(chǔ)空間,這時(shí)候就不需要用戶本身來清理緩存了,可以通過系統(tǒng)自動(dòng)來清理APP緩存。自動(dòng)清理緩存的兩個(gè)要素:設(shè)置緩存的上限、設(shè)置清理緩存的頻率。
2、需要