前端缓存数据库
A. vue3开发前端表单缓存自定义指令,移动端h5必备插件
公司开发一款移动端应用,使用vue,用户录入表单需本地缓存。为解决此问题,我们考虑两种方案。第一种方案为实时保存暂存文件到后端,间隔1-2秒调一次接口,此方案成本较高,开发困难。第二种方案为前端开发缓存插件,暂存数据于前端。
采用vue自定义指令结合localstorage进行本地缓存策略的开发。首先在项目中创建directive文件夹。在index.ts文件中编写指令事件函数。主要函数方法包含如下步骤:先获取localStorage中对应key的值,若无值则存入缓存并设置有效期;若存在值,则覆盖到原有对象字段上。主方法内有if else结构,用于判断是否有第四个参数,即外层for循环序号。对于for循环数组,需要加上第四个参数;单个form表单则不需额外参数。
在directive文件夹下新增index.ts文件。在main.ts文件中注册指令。使用示例展示如何仅对一个大对象的表单进行缓存。
至此,vue3前端表单缓存自定义指令开发完成,操作简单。然而,程序员需跳出技术圈,拓展视野,了解前沿知识。在开发内部工具时,发现大量页面、场景、组件等重复工作,浪费工程师时间。推荐使用JNPF快速开发平台,它是功能集大成者,支持快速开发任何信息化系统。JNPF基于java Boot/.Net Core构建,提供上千常用类,方便扩展。集成代码生成器,支持前后端业务代码生成,实现快速开发。框架内置表单、报表、图表、大屏等Demo,方便直接使用。后端支持Vue2、Vue3。推荐学习以拓展知识。
B. 鍓岖缂揿瓨镄勭悊瑙 鎴栬 鍓岖鏁版嵁鎸佷箙鍖栫殑鐞呜В(寮哄埗缂揿瓨銆佸岗鍟嗙紦瀛)
缂揿瓨鍙浠ヨ存槸镐ц兘浼桦寲涓绠鍗曢珮鏁堢殑涓绉崭紭鍖栨柟寮忎简銆备竴涓浼樼镄勭紦瀛樼瓥鐣ュ彲浠ョ缉鐭缃戦〉璇锋眰璧勬簮镄勮窛绂伙纴鍑忓皯寤惰繜锛屽苟涓旂敱浜 缂揿瓨鏂囦欢鍙浠ラ吨澶嶅埄鐢 锛岃缮鍙浠ュ噺灏戝甫瀹斤纴闄崭绠缃戠粶璐熻嵎銆
瀵逛簬涓涓鏁版嵁璇锋眰𨱒ヨ达纴鍙浠ュ垎涓哄彂璧 缃戠粶璇锋眰銆佸悗绔澶勭悊銆佹祻瑙埚櫒鍝嶅簲 涓変釜姝ラゃ傛祻瑙埚櫒缂揿瓨鍙浠ュ府锷╂垜浠鍦ㄧ涓鍜岀涓夋ラや腑浼桦寲镐ц兘銆傛瘆濡傝寸洿鎺ヤ娇鐢ㄧ紦瀛樿屼笉鍙戣捣璇锋眰锛屾垨钥呭彂璧蜂简璇锋眰浣嗗悗绔瀛桦偍镄勬暟鎹鍜屽墠绔涓镊达纴闾d箞灏辨病链夊繀瑕佸啀灏嗘暟鎹锲炰紶锲炴潵锛岃繖镙峰氨鍑忓皯浜嗗搷搴旀暟鎹銆
鈶犱笉瀛桦湪璇ョ紦瀛樼粨鏋滃拰缂揿瓨镙囱瘑锛屽己鍒剁紦瀛桦け鏁堬纴鍒欑洿鎺ュ悜链嶅姟鍣ㄥ彂璧疯锋眰
鈶″瓨鍦ㄨョ紦瀛樼粨鏋滃拰缂揿瓨镙囱瘑锛屼絾璇ョ粨鏋滃凡澶辨晥锛屽己鍒剁紦瀛桦け鏁堬纴鍒欎娇鐢ㄥ岗鍟嗙紦瀛
鈶㈠瓨鍦ㄨョ紦瀛樼粨鏋滃拰缂揿瓨镙囱瘑锛屼笖璇ョ粨鏋滃皻链澶辨晥锛屽己鍒剁紦瀛樼敓鏁堬纴鐩存帴杩斿洖璇ョ粨鏋
鎺у埗寮哄埗缂揿瓨镄勫瓧娈靛垎鍒鏄疎xpires鍜孋ache-Control锛屽叾涓瑿ache-Control浼桦厛绾ф瘆Expires楂樸
Cache-Control銆丒xpires閮芥槸缂揿瓨鍒版湡镞堕棿锛孋ache-Control鏄鐩稿瑰硷纴Expires鏄缁濆瑰硷纴鍗冲啀娆″彂阃佽锋眰镞讹纴濡傛灉镞堕棿娌″埌链燂纴寮哄埗缂揿瓨鐢熸晥銆
娉锛氩湪镞犳硶纭瀹氩㈡埛绔镄勬椂闂存槸钖︿笌链嶅姟绔镄勬椂闂村悓姝ョ殑𨱍呭喌涓嬶纴Cache-Control鐩告瘆浜巈xpires鏄镟村ソ镄勯夋嫨锛屾墍浠ュ悓镞跺瓨鍦ㄦ椂锛屽彧链塁ache-Control鐢熸晥銆
鈶犲岗鍟嗙紦瀛樼敓鏁堬纴杩斿洖304
鈶″岗鍟嗙紦瀛桦け鏁堬纴杩斿洖200鍜岃锋眰缁撴灉
杩欓噷鎴戜滑浠ュ崥瀹㈢殑璇锋眰涓轰緥锛岀姸镐佺爜涓虹伆镩茬殑璇锋眰鍒欎唬琛ㄤ娇鐢ㄤ简寮哄埗缂揿瓨锛岃锋眰瀵瑰簲镄凷ize鍊煎垯浠h〃璇ョ紦瀛桦瓨鏀剧殑浣岖疆锛屽垎鍒涓篺rom memory cache 鍜 from disk cache銆傞偅涔坒rom memory cache 鍜 from disk cache鍙埚垎鍒浠h〃镄勬槸浠涔埚憿锛熶粈涔堟椂鍊欎细浣跨敤from disk cache锛屼粈涔堟椂鍊欎细浣跨敤from memory cache锻锛
from memory cache浠h〃浣跨敤 鍐呭瓨涓镄勭紦瀛 锛宖rom disk cache鍒欎唬琛ㄤ娇鐢ㄧ殑鏄 纭鐩树腑镄勭紦瀛 锛
C. ios前端有缓存
ios前端有缓存的解决方法:
1.此时在ios app的沙盒文件中将保存好已经缓存的文件,如果此时没有退出APP,那么缓存的内容同时也会保存在内存中;如下图(此处针对的UIWebView)
2.此时可以看到这Caches文件中,后面的Paul.H5下面多了Cache.db的数据库,打开数据库可以看到以下内容;注意 此时的图片资源也是保存在Paul.H5下面的文件中
D. vue前端离开页面前 防止表单数据丢失
要防止用户在Vue前端离开页面前表单数据丢失,可以利用Vue的keepalive组件进行表单内容的缓存。
具体实现方法如下:
利用keepalive组件:
- keepalive是Vue的内置组件,用于缓存不活跃的组件实例,而不是销毁它们。这样,当用户返回页面时,表单数据仍然保留在内存中。
在App.vue中添加keepalive标签:
- 将需要缓存的表单页面组件包裹在keepalive标签内。可以通过include属性指定需要缓存的组件名称,或者通过exclude属性排除不需要缓存的组件。
在路由文件中添加meta属性:
- 可以在路由配置中为需要缓存的页面添加meta属性,例如meta: { keepAlive: true },以便在编程时动态控制keepalive的行为。
在跳转的新页面中添加beforeRouteLeave生命周期钩子:
- 在用户离开当前表单页面时,可以在beforeRouteLeave钩子中执行一些操作,例如提示用户保存表单数据,或者自动保存表单数据到localStorage等持久化存储中。但请注意,这里主要讨论的是利用keepalive缓存表单数据,因此通常不需要在beforeRouteLeave中保存数据到持久化存储,除非有额外需求。
注意事项:
- keepalive只会缓存其直接子组件,而不会递归地缓存所有后代组件。因此,如果表单页面组件嵌套在其他组件内部,需要确保keepalive直接包裹表单页面组件。
- 使用keepalive时,需要注意组件的生命周期函数。特别是activated和deactivated这两个生命周期函数,它们会在组件被激活和停用时调用。这可以用于在组件重新激活时执行一些初始化操作,或者在组件停用时执行一些清理操作。
通过上述方法,可以有效地防止用户在Vue前端离开页面前表单数据丢失的问题,提升用户体验。
E. 前端javascript编程如何获取缓存和清除缓存api
在前端JavaScript编程中,获取和清除缓存主要依赖于localStorage和sessionStorage API。
本地存储(localStorage)和会话存储(sessionStorage)能持久化存储数据,即使关闭浏览器或重启电脑也能保持。获取本地存储中的数据,可使用以下代码:
清除本地存储数据的步骤如下:
注意,以上API仅适用于本地存储操作。若应用采用其他缓存机制(如浏览器缓存或服务端缓存),则需使用对应API进行清除。