事先把遍历后的内容存储到内存中,免得查找其他作者时重新获取数据

This commit is contained in:
Kunagisa 2025-06-14 14:39:17 +08:00
parent 0317061c4d
commit 117dd2d233
2 changed files with 22 additions and 18 deletions

View File

@ -50,7 +50,7 @@ export const getUserInfo = async () => {
export const logoutUser = () => { // 不再是 async因为它不执行异步导航 export const logoutUser = () => { // 不再是 async因为它不执行异步导航
// console.log('jwt.js: logoutUser called. Clearing local storage.'); // console.log('jwt.js: logoutUser called. Clearing local storage.');
localStorage.removeItem('access_token'); localStorage.removeItem('access_token');
localStorage.removeItem('user_id'); // 如果您也存储了user_id localStorage.removeItem('user_id');
// 导航将由调用者(如路由守卫)处理 // 导航将由调用者(如路由守卫)处理
}; };

View File

@ -182,25 +182,29 @@ const fetchAuthorMaps = async () => {
return return
} }
authorName.value = author authorName.value = author
const cacheKey = 'allMaps'
//
let allMaps = [] let allMaps = []
let page = 1 const cached = sessionStorage.getItem(cacheKey)
let hasMore = true if (cached) {
allMaps = JSON.parse(cached)
while (hasMore) { } else {
const response = await getMaps({ //
page: page, let page = 1
ordering: '-create_time' let hasMore = true
}) while (hasMore) {
const response = await getMaps({
if (response.results && response.results.length > 0) { page: page,
allMaps = allMaps.concat(response.results) ordering: '-create_time'
hasMore = !!response.next })
page++ if (response.results && response.results.length > 0) {
} else { allMaps = allMaps.concat(response.results)
hasMore = false hasMore = !!response.next
page++
} else {
hasMore = false
}
} }
sessionStorage.setItem(cacheKey, JSON.stringify(allMaps))
} }
// //
authorMaps.value = allMaps.filter(map => map.user === author) authorMaps.value = allMaps.filter(map => map.user === author)