storageの使い方で疑問に思ったことをいくつか、、
①keyの副重はありうるか?
②keyが存在するところにsetItemをした場合上書きされるか
③setItem(key,);とvalueをなくしたときのgetItem(key);で取得したvalueの中身は?
④getItemで存在しないkeyを選択したときの返り値は?
わかってる内容
・Key-Value情報のsetメソッド setItem(key, value);
・Storageからのデータの取得 getItem(key);
・すべてのデータを削除 clear()
・指定された番号のキーを取得 key(n)
・Storageに保存されているデータの数を取得 length
・キーに対応したバリューを削除 removeItem(key)
①keyの副重はありうるか?
②keyが存在するところにsetItemをした場合上書きされるか
setItemの時にすでに使用しているkeyに入れようとしているとどういう挙動になりますか?
=============
番号 タイトル 内容
0 ああああ あああああ
1 いいいい いいいいい
2 うううう
=============
この状況で、
setItem(ああああ, 別の内容);
と入力した場合
=============
番号 タイトル 内容
0 ああああ あああああ
1 いいいい いいいいい
2 うううう
3 ああああ 別の内容
=============
となるのか、上書きされて
=============
番号 タイトル 内容
0 ああああ 別の内容
1 いいいい いいいいい
2 うううう
=============
となるのか疑問です、
自分がやった実験では上書きされるのですが、たまに同じ名前のkeyで別の内容ということが起こります。↓
=============
番号 タイトル 内容
0 ああああ ああああ
1 ああああ 別の内容
=============
起こるタイミングでのソースはありませんが、心当たりがあれば教えてください。
③setItem(key,);とvalueをなくしたときのgetItem(key);で取得したvalueの中身は?
javascript
1 var title1 = document.getElementById("title").value; 2 var value1 = document.getElementById("value").value; 3 edittitle = title1; 4 editvalue = value1; 5 storage.setItem(title1, value1); 6 showlist();
このようにhtmlのテキストから取得したデータをストレージに保存してるのですが、
valueをなしにしても、さらにはkeyをなしにしてもstorageに保存されています、これはどのような形でstorageに保存されてるのでしょうか?
④getItemで存在しないkeyを選択したときの返り値は?
背景、メモ帳を作ってます。
メモのタイトルをkeyに、内容をvalueに保存して管理するシステムを作りました。しかし、新規作成の時にkeyを「新規作成」のまま保存すると、「新規作成」に上書きされてしまいます。そのほか既存のkeyをタイトルにするとそのタイトル部分に上書きされてしまいます。
したがって、windowsのファイル作成のように
「新規作成」がある場合、「新規作成―2」、それもある場合、「新規作成‐3」
のようにしたいですが、そのkeyが存在しているかどうかを確認しなければこの機構は作れません。したがってgetItem(key)で返り値が「undifind」₍?₎ならばタイトルを作成するという機構を作ろうと思っています。
下今のそのコード
javascript
1 var check1 = storage.getItem(title1); 2 var check2 = storage.getItem(title1); 3 if(whatmode = 0) {//編集モードでは使用不可、新規作成モードの時のみ利用 4 for(var i = 1;check1 == undefined;i++) { 5 check1 = check2 + "-" + i; 6 //alert("今のcheck1は" + check1 + "だよ。"); 7 } 8 title1 = check1; 9 }
だいぶいくつも質問しましたが、回答お願いします。
追記上のソースの変更
javascript
1 var check = title1; 2 if(whatmode = 0) { 3 for(var i = 1;storage.getItem(check) == undefined;i++) { 4 check = title1 + "-" + i; 5 alert("今のcheckは" + check + "だよ。"); 6 title1 = check; 7 } 8 }
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2016/09/09 17:01