使用localstorage创建和存储用户对象

时间:2013-06-03 01:28:04

标签: javascript database json local-storage

我正在尝试使用localStorage创建用户数据库。我只需要使用唯一的id存储创建的用户,以便稍后我可以将其作为密钥引用。现在我在我的application.js中有这个代码:

$(document).ready(function() {
    $("#signupform").submit(function(e) {
        e.preventDefault();
        var user = {
            name: $('#pname').val(),
            email: $('#email').val()
        };
        localStorage.setItem('user', JSON.stringify(user));
        console.log(JSON.parse(localStorage.getItem('user')).name);
        var html = new EJS({url: 'templates/usershow.ejs'}).render(user);
        var content = document.getElementById('content');
        content.innerHTML = content.innerHTML + html;
        $("#signupform").remove();   
    });
});

我需要localStorage.setItem('user'...类似于localStorage.setItem('i'...其中“i”随着每个新创建的用户(如索引)的增加,当点击提交按钮时使用用户电子邮件作为密钥更有意义吗?这样我可以通过他们的电子邮件查找每个用户?我将如何进行此操作?再次......我只是想设置一个用户数据库我可以使用localStorage轻松引用用户及其信息。告诉我如何!

2 个答案:

答案 0 :(得分:1)

我会通过在localStorage中存储nextUniqueId来增加ID,然后获取该密钥并递增它。像这样:

function getNextUnique () {
    var next = localStorage.getItem('nextUniqueId');
    next = next ? parseInt(next) : 0;
    var newNext = next + 1;
    localStorage.setItem('nextUniqueId', newNext);
    return next;
}

每当您想要保存新用户时都要调用它:

localStorage.setItem(getNextUnique(), JSON.stringify(user));

答案 1 :(得分:1)

使用用户的电子邮件更有意义。简单就是好。

但是 ...这是localStorage。不应该有多个用户使用它,对吧? localStorage本身对于客户端应用程序是唯一的。真的会有多个用户使用相同的浏览器吗?

如果是这样,那么这很好。但我想知道你是否真的在考虑localStorage如何运作......