如何避免写入localStorage变量

时间:2014-12-23 09:03:09

标签: javascript html html5 local-storage



var s = 0;
btn.addEventListener('click', function() {
      var ModelMake = prompt("Enter The Model Make"),
        ModelYear = prompt("Enter The Model Year"),
        Km = prompt("Enter The Amount Of Km"),
        Price = prompt("Enter The Price"),
        Status = prompt("Enter The Car's Status"),
        FinalPrice,
        Details = prompt("Enter the Details");

      localStorage.setItem(s += 1, JSON.stringify({
        ModelMake: ModelMake,
        ModelYear: ModelYear,
        Km: Km,
        Price: Price,
        Status: Status,
        Details: Details,
        FinalPrice: FinalPrice
      }));




如何避免在用户刷新或关闭浏览器后覆盖以前的localStorage对象。我大写的原因是强调只要用户不刷新或关闭浏览器,此代码就可以通过递增来生成不同的对象。刷新或重新打开应用程序的那一刻然后输入新值,先前的对象被新的对象覆盖,增量从1开始(覆盖前一个)。

2 个答案:

答案 0 :(得分:0)

您可以先在app load上创建值并创建。

实际上,不是最初将其设置为0,而是将其存储为' index'在你的本地存储。然后你可以从你离开的地方继续

答案 1 :(得分:0)

试试这个。 我创建了一个新的变量索引,它在每次运行结束时存储s的值。 在用户下次打开页面时初始化s时会读取此值,以便您可以从上次停止的位置继续。

var s = 0; // Problem lies here
if(typeof(Storage)!=="undefined")
{
    s = parseInt(localStorage.getItem("index"));
}

btn.addEventListener('click', function() {
      var ModelMake = prompt("Enter The Model Make"),
        ModelYear = prompt("Enter The Model Year"),
        Km = prompt("Enter The Amount Of Km"),
        Price = prompt("Enter The Price"),
        Status = prompt("Enter The Car's Status"),
        FinalPrice,
        Details = prompt("Enter the Details");

      localStorage.setItem(s += 1, JSON.stringify({
        ModelMake: ModelMake,
        ModelYear: ModelYear,
        Km: Km,
        Price: Price,
        Status: Status,
        Details: Details,
        FinalPrice: FinalPrice
      }));

     localStorage.setItem('index', s);

});