首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Html存储重置每一次刷新,初始化功能无效

Html存储重置每一次刷新,初始化功能无效
EN

Stack Overflow用户
提问于 2017-06-28 17:16:30
回答 1查看 39关注 0票数 0

对于一个我正在工作的网站,我试图保存关于你购买多少商品的信息来显示在html页面上。研究如何做到这一点让我相信Html是最好的方法(如果有更好/更简单的方法,请告诉我)。然而,每当我刷新html页面或转到另一个页面时,数据重置。

这是我的代码:

代码语言:javascript
复制
 function initialize(name, val) {
if(localStorage.getItem(name) === null) {
  localStorage.setItem(name, val);

   }

}

initialize("subCost", 0);
initialize("quantity", 0);
initialize("hasProduct", false);

然后,由于存储只存储字符串,所以我将它们转换为整数和布尔值。

代码语言:javascript
复制
var $quantity = parseInt(localStorage.quantity);
var $subCost = parseInt(localStorage.subCost);
var $hasProduct = localStorage.hasProduct == "true";

在没有初始化函数之前,我使本地存储项如下所示

代码语言:javascript
复制
localStorage.setItem("subCost", 0);
localStorage.setItem("quantity", 0);
localStorage.setItem("hasProduct", false);

仍然将这些变量转换为这些变量,但每次刷新时都不会保存这些变量。如何获得这些以保存每次刷新时对它们所做的更改。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-06-28 21:18:07

.setItem()方法在localStorage上不仅为值“设置”一个“内存占位符”.如果它已经存在,它也会覆盖它。

要保存用户生成的值,保存“更改”的最佳“时刻”是change事件。

使用与您的.setItem()函数相同的initialize()方法。

代码语言:javascript
复制
$("input").on("change",function(){

  // Get id and value.
  var id = $(this).attr("id");
  var value = $(this).val();

  // Save!
  localStorage.setItem(id,value);
});

CodePen

只是个暗示.

这种本地保存值的方法是短暂的。

值保留到用户关闭浏览器为止。

不仅关闭页面,而且完全关闭浏览器。

因此,为了在页面之间导航一些值,这是最佳的使用方法。

若要在较长时间内存储值(例如6个月或更长时间),请使用cookie。

看看jQuery Cookie插件

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44808873

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档