前台存储

2 篇文章 0 订阅
1 篇文章 0 订阅

前台存储有 LocalStorage和cookies,其实对于在浏览器里存储数据,你可以使用LocalStorage和cookies,但他们都是简单的。

1.cookies

每次HTTP接受和发送都会传递cookies数据,会占用额外的流量。例:如果你有10kb的cookies数据,发送10次请求,那么就会有100kb的数据在网络上传输。 cookies只能是字符串 。浏览器里存储cookies的空间有限,很多用户禁止浏览器使用cookies,所以cookies只能用来存储小量的非关系型数据,cookies大小不超过4k。


2.LocalStorage

LocalStorage用key-value键值存储数据,它的数据不是按照对象形式存储,它存储的数据都是字符串形式的,如果想让LocalStorage存储对象用JSON.Stringify()将对象转变为字符串的形式,再用JSON.Parse()将字符串还原为对象,[如果存储大量复杂的数据这不是一个好的方案]LocalStorage专门为小的数量数据设计的,所以他的API是同步的,LocalStorage(2.5MB~10MB)不提供搜索功能,不能建立自定义的索引

localStorage对象的设置
var storage = window.localStorage ;
1.storage['username'] = 'zzz';
2.storage.setItem('username','zzz');
3.storage.username = 'zzz';

获取
var storage = window.localStorage ;
1.storage['username'];
2.storage.getItem('username');
3.storage.username;
storage.key(index);                   遍历返回的key

删除
1.storage.removeItem(key);            无返回值,一次删一条,没有对应的key不执行任何操作
2.storage.clear;                      删除同源存储列表中的所有数据

———————————————————————————————————————————————————————————————————————————————————————————
openDialog('url','name','arg1','arg2');
url:在新窗户打开的地址
name:打开的页面
arg1,arg2:参数1,参数2

例如:
HTML:<button id="addToTable" onclick="add()" class="btn btn-primary waves-effect waves-light" style="float:right;">添加 <i class="fa fa-plus"></i></button>
JS://新增
function add(){
    var storage=window.localStorage;
    storage["companyId"]=companyId;
    storage["userPower"]=userPower;
    storage["editType"]='0';
    openDialog('添加账号','adminInfoEdit.html','70%','70%');
}
/*这是一个方法(点击添加按钮时)把companyId,userPower,0 分别赋值给companyId,userPower,editType 传到下一个页面*/

adminInfoEdit.html:
/*打开的页面localStorage操作*/
 var storage=window.localStorage;
    editType = storage["editType"];
    thisId = storage["thisId"];
    companyId = storage["companyId"];
    userpower = storage["userPower"];
    storage.removeItem('editType');
    storage.removeItem('thisId');
    storage.removeItem('companyId');
    storage.removeItem('userPower');
/*先赋值然后根据key删除对应的值*/

/**
 * 打开对话框(添加修改)  
 * @param title
 * @param url
 * @param width
 * @param height
 */
function openDialog(title,url,width,height){
    if(navigator.userAgent.match(/(iPhone|iPod|Android|ios)/i)){//如果是移动端,就使用自适应大小弹窗
        width='auto';
        height='auto';
    }else{//如果是PC端,根据用户设置的width和height显示。

    }


3.indexDB

indexDB适合存储大量数据(使用索引存储数据)各种数据库操作放在事务中处理,indexDB比LocalStorage强大的多,但它的API复杂,API异步调用。(简单的数据用LocalStorage,存储大量的数据用indexDB更合适)

详情如下:

https://blog.csdn.net/weixin_43136017/article/details/84257558

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值