html5 - 前端面試碰到了一個(gè)緩存數(shù)據(jù)的問(wèn)題,來(lái)論壇上請(qǐng)教一下
問(wèn)題描述
今天面試的時(shí)候面試官問(wèn)我,如果一個(gè)頁(yè)面是調(diào)用后臺(tái)的某個(gè)接口拿到一個(gè)array,由100個(gè)對(duì)象組成。用這些對(duì)象十個(gè)為一頁(yè)生成了一些組件,有頁(yè)碼可以切換顯示,如果用戶(hù)點(diǎn)擊某個(gè)條目查看詳細(xì)信息后再回到目錄位置,或者是在目錄位置刷新頁(yè)面,該用什么樣的技術(shù)來(lái)減少后臺(tái)接口的調(diào)用次數(shù)。可以認(rèn)為這組數(shù)據(jù)是類(lèi)似條件篩選產(chǎn)生的,刷新或者返回在條件不變的情況下拿到的數(shù)據(jù)是相同的,求指點(diǎn)
問(wèn)題解答
回答1:不大明白你的意思,是說(shuō)要做個(gè)假分頁(yè)嗎
回答2:也就是前端配置好查詢(xún)參數(shù),后端根據(jù)查詢(xún)參數(shù)返回對(duì)應(yīng)的數(shù)據(jù)
只需要將查詢(xún)參數(shù)以及查詢(xún)到的數(shù)據(jù)保存在本地
每次請(qǐng)求之前都判斷查詢(xún)參數(shù)是否和本地保存的一致
查詢(xún)參數(shù)一致,就用本地?cái)?shù)據(jù)
查詢(xún)參數(shù)不一致,就重新請(qǐng)求
如果需要更深層次的優(yōu)化,就需要拆分接口了。
回答3:前端分頁(yè)(就是假分頁(yè)唄
// 100 條數(shù)據(jù)的原數(shù)組const dataArr// 頁(yè)面偏移量及每頁(yè)尺寸let offset, size// 最終顯示在頁(yè)面的數(shù)據(jù)let displayArr = dataArr.slice(offset, offset + size)
