当前位置: 首页 > news >正文

网站建设横条自己做的网站根目录哪里找到

网站建设横条,自己做的网站根目录哪里找到,网站设计网络推广优化,网站打开不了怎样做前言 前端本地化存储算是一个老生常谈的话题了,我们对于 cookies、Web Storage(sessionStorage、localStorage)的使用已经非常熟悉,在面试与实际操作之中也会经常遇到相关的问题,但这些本地化存储的方式还存在一些缺陷…

前言

前端本地化存储算是一个老生常谈的话题了,我们对于 cookies、Web Storage(sessionStorage、localStorage)的使用已经非常熟悉,在面试与实际操作之中也会经常遇到相关的问题,但这些本地化存储的方式还存在一些缺陷,比较明显的缺点如下:

存储量小:即使是web storage的存储量最大也只有 5M
存取不方便:存入的内容会经过序列化,当存入非字符串的时候,取值的时候需要通过反序列化。

当我们的存储量比较大的时候,我们一定会想到我们的 indexedDB,让我们在浏览器中也可以使用数据库这种形式来玩转本地化存储,然而 indexedDB 的使用是比较繁琐而复杂的,有一定的学习成本,但第三方库 localForage 的出现几乎抹平了这个缺陷,让我们轻松无负担的在浏览器中使用 indexedDB。

什么是 indexedDB?

IndexedDB 是一种底层 API,用于在客户端存储大量的结构化数据(也包括文件/二进制大型对象)。

存取方便

IndexedDB 是一个基于 JavaScript 的面向对象数据库。IndexedDB 允许你存储和检索用键索引的对象;可以存储结构化克隆算法支持的任何对象。

之前我们使用 webStorage 存储对象或数组的时候,还需要先经过先序列化为字符串,取值的时候需要经过反序列化,那indexedDB就比较完美的解决了这个问题,可以轻松存取对象或数组等结构化克隆算法支持的任何对象。

异步存取

我相信你肯定会思考一个问题:localStorage如果存储内容多的话会消耗内存空间,会导致页面变卡。那么 IndexedDB 存储量过多的话会导致页面变卡吗?

不会有太大影响,因为 IndexedDB 的读取和存储都是异步的,不会阻塞浏览器进程。

庞大的存储量

IndexedDB 的储存空间比LocalStorage 大得多,一般可达到500M,甚至没有上限。

关于 indexedDB 的介绍就到此为止,详细使用在此不再赘述,因为本篇文章我重点想介绍的是 localForage!

什么是 localForage?

localForage 是基于 indexedDB 封装的库,通过它我们可以简化 IndexedDB 的使用。
在这里插入图片描述

兼容性

通常涉及到这类型的技术,我们都会考虑一个问题,那就是浏览器的兼容性。我们可以看下 localStorage 与 indexedDB 兼容性比对,两者之间还是有一些小差距。

在这里插入图片描述
但是你也不必太过担心,因为 localforage 已经帮你消除了这个心智负担,它有一个优雅降级策略,若浏览器不支持 IndexedDB 则使用 WebSQL ,如果不支持 WebSQL 则使用 localStorage。在所有主流浏览器中都可用:Chrome,Firefox,IE 和 Safari(包括 Safari Mobile)。

localForage 的使用

①使用

import localforage from 'localforage'

②创建一个 indexedDB

const myIndexedDB = localforage.createInstance({name: 'myIndexedDB',
})

③存值

myIndexedDB.setItem(key, value)

④取值
由于indexedDB的存取都是异步的,建议使用 promise.then() 或 async/await 去读值

myIndexedDB.getItem('somekey').then(function (value) {// we got our value
}).catch(function (err) {// we got an error
});

或者

try {const value = await myIndexedDB.getItem('somekey');// This code runs once the value has been loaded// from the offline store.console.log(value);
} catch (err) {// This code runs if there were any errors.console.log(err);
}

⑤删除

myIndexedDB.removeItem('somekey')

⑥重置数据库

myIndexedDB.clear()

VUE 推荐使用 Pinia 管理 localForage

如果你想使用多个数据库,建议通过 pinia 统一管理所有的数据库,这样数据的流向会更明晰,数据库相关的操作都写在 store 中,让你的数据库更规范化。

// store/indexedDB.ts
import { defineStore } from 'pinia'
import localforage from 'localforage'export const useIndexedDBStore = defineStore('indexedDB', {state: () => ({filesDB: localforage.createInstance({name: 'filesDB',}),usersDB: localforage.createInstance({name: 'usersDB',}),responseDB: localforage.createInstance({name: 'responseDB',}),}),actions: {async setfilesDB(key: string, value: any) {this.filesDB.setItem(key, value)},}
})

通过调用store来使用库:

import { useIndexedDBStore } from '@/store/indexedDB'
const indexedDBStore = useIndexedDBStore()
const file1 = {a: 'hello'}
indexedDBStore.setfilesDB('file1', file1)
http://www.yayakq.cn/news/512143/

相关文章:

  • 有网站吗给一个设计师投稿网站
  • 四川住房建设厅网站电子商务难学吗
  • 陕西省建设工程质量监督站网站wordpress 充值系统
  • ps切片怎么做网站最简单的网站
  • 学做蛋糕哪个网站好网页设计师中级证书有用吗
  • 网站优化公司上海品牌建设的意义是什么
  • 衡阳网站开发培训那个网站做直播好
  • 辽宁省住房和城乡建设厅网站打不开微信手机营销软件网站建设
  • 网站建设运营计划书洋气的设计公司名字
  • 做网站哪里比较好浙江江能建设有限公司网站
  • 网页设计网站欣赏做it的中国企业网站
  • 成都高新网站建设做网站的文案
  • 绵阳新农网的网站是哪个公司做的wordpress 照片分享
  • 电子商务网站开发 当当网上海全国关键词排名优化
  • 专业做物流公司网站网站大量死链
  • 爱站网收录淘宝网首页登录网页版
  • 丽水微信网站建设价格设计制作一个生态瓶
  • 精品课程网站建设验收单上传网站再备案
  • 门户网站代码php 数据库 wordpress
  • 通化市城乡建设局网站装饰公司响应式网站建设案例
  • 合肥网站的建设服务商pid是什么意思
  • 做设计用哪个素材网站好加入电商平台需要多少钱
  • 服装网站的设计理念海南定安建设局网站
  • 网站建设意味着什么网站对企业的重要性
  • 织梦怎么设置网站首页wordpress图片在哪个文件夹
  • 做塑胶材料的网站网站开发费的会计处理
  • 网站建设 文档下载河南网站建设运营域名注册公司
  • 河北城乡建设官方网站网站开发记科目
  • 哪些网站是用iframe淘宝商城的网站建设
  • 百色市右江区了建设局网站某一个网页打不开是什么原因