使用 LocalStorage 提升前端体验
使用 LocalStorage 提升前端体验
在这个项目(www.studytool.site)中,本地缓存 (localStorage) 作为一种持久化存储机制,被广泛应用于用户设置和数据保存,确保用户在刷新页面或关闭浏览器后,仍然能够保留自定义的偏好和进度。以下是本地缓存在该项目中的几个关键应用场景:
1. 字体设置的缓存
用户可以在播放器中调整字幕的字体大小(超大、大、中、小),系统会将这些设置保存到 localStorage
中,以便下次访问时能够自动加载之前的字体大小设置。通过以下代码,系统能够持久化用户的字体选择:
localStorage.setItem(LOCAL_STORAGE_KEY_FONT_SIZE, selectedValue);
localStorage.getItem(LOCAL_STORAGE_KEY_FONT_SIZE);
这样,字体设置在页面刷新后仍然有效。
2. 字幕显示与隐藏状态缓存
用户可以选择显示或隐藏字幕、译文和收藏的句子列表。每次用户切换这些选项时,系统会将状态保存到 localStorage
,例如:
localStorage.setItem(LOCAL_STORAGE_KEY_IS_SHOW_CAPTION, captionsVisible); // 保存字幕显示状态
localStorage.setItem(LOCAL_STORAGE_KEY_IS_SHOW_TRANSLATION, captionsTranslationVisible); // 保存译文显示状态
localStorage.setItem(LOCAL_STORAGE_KEY_IS_SHOW_FAVORITE, favoriteListVisible); // 保存收藏列表显示状态
这样,当用户重新加载页面时,系统能够根据缓存的状态决定是否显示这些内容。
3. 收藏句子的保存
当用户选择将某些句子标记为需要重复或收藏时,系统会将这些收藏句子的索引保存在 localStorage
中。通过以下函数,收藏的句子列表被存储并加载:
saveToLocalStorage(repeatedSentences); // 保存收藏句子
loadFromLocalStorage(); // 加载已保存的收藏句子
这样用户可以方便地回顾已收藏的内容。
4. 自动播放下一句功能
播放器支持自动播放下一句字幕。该选项的开启与关闭状态会存储在 localStorage
中,确保用户在关闭浏览器后重新打开时,依旧保持之前的播放设置:
localStorage.setItem(LOCAL_STORAGE_KEY_IS_AUTO_PLAY_NEXT, isAutoPlayNext);
5. 已完成内容的标记
允许用户标记某篇文章为“已完成”,并将该信息保存在 localStorage
中的 completedArticles
列表中。每次用户标记或取消标记时,系统会更新本地缓存:
localStorage.setItem(LOCAL_STORAGE_KEY_COMPLETED, JSON.stringify(completedArticles));
6. 缓存字幕和有效期机制
为了提升页面加载性能,项目实现了字幕文件的缓存,并设置了缓存有效期。使用 setItemWithExpiry
函数,字幕文件会存储在 localStorage
中,并设置缓存有效期(如60分钟)。如果缓存过期,系统将重新请求数据:
setItemWithExpiry(`subtitles_${articleValue}`, subtitles, CACHE_EXPIRY);
总结
在这个项目中,localStorage
通过缓存用户的自定义设置(如字体大小、字幕显示状态等)、保存用户交互结果(如收藏句子、完成状态等),以及缓存常用数据(如字幕内容),极大地提升了用户体验和系统的响应速度。这种方式适用于需要保存用户设置及数据的小型应用场景,而无需复杂的后端支持。
需要注意的是,localStorage
的数据存储上限为5MB,且不应存储敏感信息。
原文地址:https://blog.csdn.net/ooobama/article/details/142409237
免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!