javascriptのクッキーについて考えています。

クッキーは1つのドメインにつき20個までと参考書にはありますが、
それ以上を保存させるとしたら、何かいい案は浮かばないでしょうか?

例)
1日1回スコアを記録できる50の入力欄(クッキー保存場所)を作り、
そして最終的には、全50のスコアを参照したいのです。

データベースは使わず、
javascriptだけで考えられる案はないでしょうか?

よろしくお願いします。

回答の条件
  • 1人5回まで
  • 登録:2009/06/27 12:32:35
  • 終了:2009/06/29 18:02:45

回答(4件)

id:juner No.1

juner回答回数21ベストアンサー獲得回数02009/06/28 14:26:26

ポイント40pt

cookieでやりたいならば

毎日一つのcookieとして値を格納し直せば如何でしょうか?

例えば

6/21 1

6/22 2

6/23 4

6/24 3

6/25 8

というデータがあったとすると

key を hogeとして値を6/21:1,6/22:2,6/23:4,6/24:3,6/25:8

の様にしてやり、取り出し方を工夫すれば出来るのでは無いでしょうか?

勿論文字数にもよりますが…。

id:tontonpokopoko

わかりやすい回答をありがとうございます。

保存の方法と取り出し方を考えていろいろと試してみます。

2009/06/29 17:52:13
id:y-kawaz No.2

y-kawaz回答回数1419ベストアンサー獲得回数2252009/06/27 18:55:08

ポイント40pt

1個のクッキーに50個の値を入れればいいのでは?

例えば50個の値をカンマ区切りで1つの文字列にして保存して使うときはカンマでsplitして使うなど。

もしくは今時だとローカルストレージの活用を考えるとか。

id:tontonpokopoko

回答をありがとうございます。

皆さん、同じ方法で回答されてますね。

その方法で試してみます。

2009/06/29 17:57:50
id:b-wind No.3

b-wind回答回数3344ベストアンサー獲得回数4402009/06/27 16:10:27

ポイント40pt

1スコア=1クッキーの対応を止めればよいのでは?

複数スコアをカンマ区切りなどで一つの文字列としてまとめ、1つのクッキーに収めれば数量の制限は避けられるでしょう。


ただ、Cookie はユーザーの操作で追加・削除がいくらでも行えるものですから(特に削除)データの保存場所としては適しているとは思えませんが。

id:tontonpokopoko

やはりクッキーをデータの保存場所と考えるのは無理がありますか・・

現状ではデータベース、ログインを使わない方法で、

どこまで出来るかを試したかったのですが

確かにおっしゃるとおりなので、考え直したほうが簡単かも・・

2009/06/29 17:57:46
id:pahoo No.4

pahoo回答回数5960ベストアンサー獲得回数6332009/06/27 13:06:35

ポイント40pt

たとえばスコアの区切り文字をカンマにして、1つのCookieに50個分のスコアを入れたらどうでしょう。

例:100,200,110,200....

id:tontonpokopoko

いつもありがとうございます。

便乗ですいませんが・・

リストボックスで値を保存し、

次回のディフォルトで、保存した値で表示させることは無理でしょうか?

その値を、selected、という感じです。

2009/06/29 18:01:22
  • id:tontonpokopoko
    皆さま、回答をありがとうございます。
    現在いろいろと検証中です。
  • id:tontonpokopoko
    便乗質問ですが、どなたかご意見をいただければ・・
    cookiemanagerとprototypeを使って以下↓の感じで
    値を保存させましたが、
    更新したときに、
    その値を反映させてリストボックスを表示させるにはどうすればいいでしょうか?

    もし大変な作業なら、新たに”はてな”で質問したいと思います。


    <form name="create">
    <select name="m">
    <option value="1">01</option>
    <option value="2">02</option>
    <option value="3">03</option>
    <option value="4">04</option>
    <option value="5">05</option>
    <option value="6">06</option>
    <option value="7">07</option>
    <option value="8">08</option>
    <option value="9">09</option>
    <option value="10">10</option>
    <option value="11">11</option>
    <option value="12">12</option>
    </select>
    <input type="button" value="保存" onclick="mySet();">
    </form>
    <script type="text/javascript">
    function mySet(){
    var manager = new CookieManager();
    var check = manager.getCookie("check");
    manager.setCookie("check", document.create.m.value);
    }
    </script>
  • id:tontonpokopoko
    自己回答です。
    document.create.m[check-1].selected = true;
    としたらうまくいったようです。
  • id:i4ooon
    挙げ足とるみたいで何だけど・・・

    なぜ誰も質問者が言う「Cookieの上限20個」を疑わないんだろう???いまどき上限20個って違和感ないのかなぁ???

    と思って「cookie 上限」でググった結果。
    http://d.hatena.ne.jp/os0x/20090113/1231853839


    実際に自分の環境でも調べてみたが、たしかにOpera(9.64)は30個。

    主要ブラウザを調べてみたが、Opera以外は45~100個(それ以上OKもあるみたい)だけど、ぶっちゃけブラウザエンジンのことは詳しくない(というか興味がない)ので、細かな&厳格な事実は本当に詳しい方に譲ります。

    Chrome(2.0.*),Safari(4.0),Lunascape(5.0.5),IE(7.0.*),Sleipnir(2.8.5)
  • id:b-wind
    >なぜ誰も質問者が言う「Cookieの上限20個」を疑わないんだろう?
    そもそも Cookie を利用することが適してないから具体的な上限なんてこの場合どうでもいいんですよ。

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません