0

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 を使用してユーザーとその情報を参照します。

4

2 に答える 2

1

ユーザーの電子メールを使用する方が理にかなっています。シンプルさが良いです。

しかし...これはlocalStorageです。複数のユーザーがそれを使用するべきではありませんよね? localStorage 自体は、クライアント アプリケーションに固有です。同じブラウザを使用する複数のユーザーが実際に存在するのでしょうか?

なら、これでいい。しかし、localStorage の仕組みについて本当に考えているのだろうか...

于 2013-06-03T14:24:10.227 に答える
1

IDnextUniqueIdを localStorage に格納してインクリメントし、それをキーとして取得してインクリメントします。このようなもの:

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));
于 2013-06-03T02:30:17.077 に答える