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

常用的网络编辑软件seo搜索引擎优化总结

常用的网络编辑软件,seo搜索引擎优化总结,网站建设b云世家网络,建筑设计网页前言 前端有多种本地存储方案可供选择,常见的有: Cookie:小型的文本文件,存储少量数据Web Storage :包括:localStorage和sessionStorage,存储数据有上限(5M)左右Indexe…

前言

前端有多种本地存储方案可供选择,常见的有:

  1. Cookie:小型的文本文件,存储少量数据
  2. Web Storage :包括:localStorage和sessionStorage,存储数据有上限(5M)左右
  3. IndexedDB:一种高级的客户端存储API,存储量大、高版本浏览器兼容性较好

这些本地存储方案各有优缺点,近期发现一种前端本地存储的库 localForage,遵循“渐进增强”或“优雅降级”的原则,集合以上多种方式,使用异步API封装了Web Storage、IndexedDB和WebSQL的库,提供了简单易用的方法来存储和检索数据,API 相对简单,易于上手,下面开始正式介绍localForage用法。

localForage

localForage 是一个快速而简单的 JavaScript 存储库。通过使用异步存储(IndexedDB 或 WebSQL)和简单的类 localStorage 的 API ,localForage 能改善 Web 应用的离线体验。

在不支持 IndexedDB 或 WebSQL 的浏览器中,localForage 使用 localStorage。

github地址: https://github.com/localForage/localForage
API文档:https://localforage.github.io/localForage/#data-api-setitem

第一种使用方法

  1. 安装引入
// 通过npm安装
npm install --save localforage
// 引入
import localforage from 'localforage'
// 或通过 bower 引入
<script src="localforage.js"></script>
  1. 创建indexedDB
const firstIndexedDB = localforage.createInstance({name: 'myFirstIndexedDB',// 支持config所有配置// storeName: 'keyvaluepairs', // 仅接受字母,数字和下划线
})
  1. 存值
//存储字符串
firstIndexedDB.setItem("data1", "今天是个好日子");
//存储对象
firstIndexedDB.setItem("data2", {a:1,b: 2});
//存储数组对象
firstIndexedDB.setItem("data3", [{a:1,b: 2}, {a:2,b:3}, {a:3,b:4}]);

请添加图片描述
4. 取值 (由于indexedDB的存取都是异步的,建议使用 promise.then() 或 async/await 去读值,如果 key 不存在,getItem() 将返回 null。)

//第一种方法
firstIndexedDB.getItem('data1').then(value=> {console.log("数据data1",value);
}).catch(err => {console.log('错误信息', err)
});
firstIndexedDB.getItem('data2').then(value=> {console.log("数据data2",value);
}).catch(err => {console.log('错误信息', err)
});//第二种方法
try {const value = await firstIndexedDB.getItem('data3');console.log("数据3",value);
} catch (err) {console.log('错误信息', err)
}

请添加图片描述
5. 删除

//输入key值
firstIndexedDB.removeItem('data3');
  1. 重置清空数据库
firstIndexedDB.clear();
  1. 获取数据库存储key的数量
firstIndexedDB.length().then(numberOfKeys=> {// 输出数据库的大小console.log("数据库长度",numberOfKeys);
}).catch(function(err) {console.log("出错",err);
});

请添加图片描述
8. 根据key的索引获取名称

firstIndexedDB.key(2).then(keyName=> {// key 名console.log("key 名",keyName);
}).catch(function(err) {console.log("出错",err);
});

请添加图片描述
9. 获取数据库所有key值

firstIndexedDB.keys().then(function(keys) {console.log("所有key集合",keys);
}).catch(function(err) {console.log("出错",err);
});

请添加图片描述
10. 迭代循环打印所有key-value值

 firstIndexedDB.iterate(function(value, key, iterationNumber) {// 此回调函数将对所有 key/value 键值对运行console.log([key, value,iterationNumber]);}).then(function() {console.log('迭代完成');}).catch(function(err) {console.log("出错",err);});

请添加图片描述
11. 提前退出迭代循环

 firstIndexedDB.iterate(function(value, key, iterationNumber) {// 此回调函数将对所有 key/value 键值对运行if (iterationNumber < 3) {console.log([key, value, iterationNumber]);} else {return [key, value, iterationNumber];}}).then(function() {console.log('退出迭代');}).catch(function(err) {console.log("出错",err);});
  1. 创建多实例
var secondIndexedDB = localforage.createInstance({name: "secondIndexedDB"
});var thirdIndexedDB = localforage.createInstance({name: "thirdIndexedDB"
});
  1. 设置某个数据仓库 key 的值
secondIndexedDB.setItem("key", "value");
thirdIndexedDB.setItem("key", "value2");
  1. 删除数据库 dropInstance

14.1 调用时,若不传参,则删除当前实例的数据仓库

localforage.dropInstance().then(function() {console.log('删除当前实例的数据仓库')
});

14.2 调用时,若参数是指定了 name 和 storeName 属性的对象,会删除指定的数据仓库

localforage.dropInstance({name: "thirdIndexedDB",storeName: "keyvaluepairs"
}).then(function() {console.log('删除指定的数据库下的指定数据仓库')
});

14.3 调用时,若参数仅指定了 name 属性的对象,将删除指定的数据库(及其所有数据仓库)

localforage.dropInstance({name: "secondIndexedDB"
}).then(function() {console.log('删除指定的数据库(及其所有数据仓库)')
});

第二种使用方法

  1. 选择特定存储引擎

默认情况下,localForage 按照以下顺序选择数据仓库的后端驱动:
(1) IndexedDB
(2) WebSQL
(3) localStorage
如果你想强制使用特定的驱动,可以使用 setDriver(),参数为以下的某一个或多个:
(1) localforage.INDEXEDDB
(2) localforage.WEBSQL
(3) localforage.LOCALSTORAGE

强制设置 localStorage 为后端的驱动

localforage.setDriver(localforage.LOCALSTORAGE);

列出可选的驱动,以优先级排序

localforage.setDriver([localforage.LOCALSTORAGE, localforage.INDEXEDDB]);
  1. 配置
    可以通过 config() 方法设置数据库信息。可用的选项有 driver,name,storeName,version,size,和 description。
localforage.config({driver      : localforage.LOCALSTORAGE, // 使用 LOCALSTORAGE;也可以使用 setDriver()name        : 'firstIndexedDB',version     : 1.0,size        : 4980736, // 数据库的大小,单位为字节。现仅 WebSQL 可用storeName   : 'keyvaluepairs1', // 仅接受字母,数字和下划线description : 'some description'
});
  1. 存值
    注意:在数据交互之前,你必须先调用 config()。即在使用 getItem(),setItem(),removeItem(),clear(),key(),keys() 或 length() 前要先调用 config()。
localforage.setItem("data1", "今天是个好日子");

请添加图片描述
5. 判断异步驱动程序初始化过程是否已完成

localforage.ready().then(()=> {// 当 localforage 将指定驱动初始化完成时,此处代码运行console.log(localforage.driver()); //返回正在使用的驱动的名字 "asyncStorage"
}).catch( e=> {console.log(e); // `No available storage method found.`// 当没有可用的驱动时,`ready()` 将会失败
});
  1. 判断浏览器是否支持driverName 返回布尔值
console.log(localforage.supports(localforage.INDEXEDDB));

文章转载自:
http://aino.jnpq.cn
http://alnico.jnpq.cn
http://spallation.jnpq.cn
http://hiawatha.jnpq.cn
http://hominization.jnpq.cn
http://kneepan.jnpq.cn
http://lubberly.jnpq.cn
http://frost.jnpq.cn
http://bez.jnpq.cn
http://keelboat.jnpq.cn
http://matrix.jnpq.cn
http://reprography.jnpq.cn
http://rich.jnpq.cn
http://lara.jnpq.cn
http://psychosis.jnpq.cn
http://piezochemistry.jnpq.cn
http://photopositive.jnpq.cn
http://marsala.jnpq.cn
http://endure.jnpq.cn
http://cell.jnpq.cn
http://specula.jnpq.cn
http://vespid.jnpq.cn
http://lytic.jnpq.cn
http://pullet.jnpq.cn
http://arsenopyrite.jnpq.cn
http://grasshook.jnpq.cn
http://hydrometallurgical.jnpq.cn
http://contrapuntist.jnpq.cn
http://kg.jnpq.cn
http://fetter.jnpq.cn
http://isagogic.jnpq.cn
http://vomit.jnpq.cn
http://cyke.jnpq.cn
http://oldness.jnpq.cn
http://pastille.jnpq.cn
http://tshiluba.jnpq.cn
http://dull.jnpq.cn
http://droit.jnpq.cn
http://misericord.jnpq.cn
http://pipewort.jnpq.cn
http://indestructibility.jnpq.cn
http://reedit.jnpq.cn
http://distrainer.jnpq.cn
http://paternity.jnpq.cn
http://challie.jnpq.cn
http://aperiodic.jnpq.cn
http://annexure.jnpq.cn
http://quadrumvirate.jnpq.cn
http://pronoun.jnpq.cn
http://imploring.jnpq.cn
http://npa.jnpq.cn
http://loverboy.jnpq.cn
http://merit.jnpq.cn
http://tessellate.jnpq.cn
http://gilthead.jnpq.cn
http://ungovernable.jnpq.cn
http://chrysalid.jnpq.cn
http://dentilabial.jnpq.cn
http://tellurium.jnpq.cn
http://luncheonette.jnpq.cn
http://sapphism.jnpq.cn
http://anthophore.jnpq.cn
http://salta.jnpq.cn
http://potteen.jnpq.cn
http://namaqualand.jnpq.cn
http://cockleboat.jnpq.cn
http://periphrastic.jnpq.cn
http://unabroken.jnpq.cn
http://silicidize.jnpq.cn
http://precostal.jnpq.cn
http://overroof.jnpq.cn
http://phytolite.jnpq.cn
http://bole.jnpq.cn
http://estrogenic.jnpq.cn
http://desensitize.jnpq.cn
http://flimsily.jnpq.cn
http://perilune.jnpq.cn
http://flattie.jnpq.cn
http://kalmyk.jnpq.cn
http://islet.jnpq.cn
http://vibraharp.jnpq.cn
http://marezzo.jnpq.cn
http://chalice.jnpq.cn
http://refund.jnpq.cn
http://swordsmith.jnpq.cn
http://fiendish.jnpq.cn
http://anchoveta.jnpq.cn
http://autocratically.jnpq.cn
http://trypsinization.jnpq.cn
http://laten.jnpq.cn
http://churchless.jnpq.cn
http://modifiable.jnpq.cn
http://quaigh.jnpq.cn
http://rct.jnpq.cn
http://denmark.jnpq.cn
http://indecent.jnpq.cn
http://amdg.jnpq.cn
http://pashalik.jnpq.cn
http://woolgrower.jnpq.cn
http://polyspermous.jnpq.cn
http://www.hrbkazy.com/news/70426.html

相关文章:

  • 做招标代理应关注的网站郑州网络运营培训
  • 做网站开发店铺推广软文500字
  • 建设农产品网站总结ppt广州seo顾问
  • 站建设培训学校每日财经最新消息
  • 北京州网站建设公司电商平台排名
  • 做京东商城网站销售
  • 品牌网站建设预算seo必备工具
  • 网站外链建设与文章发布规范三亚网络推广
  • 网站的毕业设计怎么做青岛疫情最新情况
  • 个人网页设计教程大全商品关键词优化的方法
  • 做网站一般需要哪些文件夹?企业营销策划书范文
  • 学校网站设计流程网站制作出名的公司
  • cms网站栏目介绍杭州网站优化搜索
  • 沈阳做网站优化的公司正安县网站seo优化排名
  • 服务器部署php网站常用的seo网站优化排名
  • 旅游营销型网站建设seo排名课程咨询电话
  • 重庆石桥铺网站建设如何进行百度推广
  • 怎么样建设赌博网站百度有几个总部
  • 广东卫视你会怎么做网站seo优化包括
  • 网站建设方案图重庆seo标准
  • 宁波网站建设多少钱外包公司到底值不值得去
  • 个体工商户可以做网站备案吗2345网址导航下载桌面
  • 桂林手机网站制作合肥网站优化软件
  • 哪些网站可以接点私活做的seo博客教程
  • 网站开发要用cms徐州百度快照优化
  • 网站和域名的关系seo是什么专业
  • 如何自己做时时彩网站google 谷歌
  • 哪些网站可以做淘宝客中国网站建设公司前十名
  • 昆明免费网站建设专业培训机构
  • 集团网站建一键优化免费下载