将localStorage值增加一

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了将localStorage值增加一相关的知识,希望对你有一定的参考价值。

我正在为我们的应用程序尝试登录功能。他们失败了三次,完全把它们踢出去了。为了计算他们尝试了多少次,我想我会使用localStorage,因为我可以很容易地操作它。但是,当他们无法验证自己时,我无法增加值。

在顶部,我正在设置localStorage变量

localStorage.setItem("attempts", "0")

然后如果服务器返回错误,我试图增加该值。

if(errorCode === 4936){
  var attempts = localStorage.getItem("attempts");
  localStorage.setItem(attempts++);
  console.log(attempts);
}

显然这不起作用,但是当我研究设置并且无需更新或更改本地存储时,我所能找到的只是。任何帮助都会很精彩!

答案

您正在尝试增加一个字符串,并尝试setItem而不给出密钥名称。那样不行。

localStorage.setItem('attempts',parseInt(localStorage.getItem('attempts'))+1);

你的案子是:

if (errorCode == 4936) {
  var attempts = parseInt(localStorage.getItem("attempts"));
  localStorage.setItem("attempts", attempts++);
  console.log(attempts);
}
另一答案

这里有3个问题

  1. 您需要在递增之前将尝试次数转换为数字
  2. 在第二组语句中,您没有再次指定密钥
  3. 您正在分配错误代码,而不是检查它是否等于4936

localStorage.setItem("attempts", "0");

if(errorCode == 4936){ // double equal is need to compare. Single equals is an assignment operator 
  var attempts = Number(localStorage.getItem("attempts"));
  localStorage.setItem("attempts", ++attempts);
  console.log(attempts);
}
另一答案

根据localstorage setItem的文档,只接受DomString(UTF-16 String)。所以答案应该是

if (errorCode === 4936) {
 var attempts = (parseInt(localStorage.getItem('attempts'))+1);
 localStorage.setItem("attempts", attempts.toString());
 console.log(attempts);
}

以上是关于将localStorage值增加一的主要内容,如果未能解决你的问题,请参考以下文章

动态SQL基础概念复习(Javaweb作业5)

layui当点击增加的时候,将form中的值获取的添加到table行中代码

localStorage sessionStorage 增强版

有没有办法增加谷歌浏览器中 localStorage 的大小以避免 QUOTA_EXCEEDED_ERR: DOM Exception 22

从 localStorage 获取值以在 Sencha Touch AJAX 代理中使用

在 Chrome 上增加 LocalStorage