cookieのようにブラウザにデータを保存できる「localStorage」を試してみます。
使い方
簡単な使い方を見てみます。
保存
keyに保存名、valueに保存する値を入れます。
localStorage.setItem(key, value);
参照
呼び出したいデータ名をkeyに入れ、取得したデータをdataに追加します。
値が保存されていない場合、nullが返ってきます。
var data = localStorage.getItem(key);
削除
削除したいデータ名をkeyに入れます。
localStorage.removeItem(key);
以下は実際に組み込んだサンプルです。
HTML
<input type="text" id="save-data" placeholder="保存するデータ入力" /> <button id="save">保存</button> <button id="del">削除</button>
JavaScript
var storageKey = 'keyName';
var storageData = localStorage.getItem(storageKey);
alert('save data:' + storageData);
var save = document.getElementById('save');
save.onclick = function() {
saveData = document.getElementById('save-data').value;
localStorage.setItem(storageKey, saveData);
};
var del = document.getElementById('del');
del.onclick = function() {
localStorage.removeItem(storageKey);
};
データを保存していないとnullとアラートが出ますが、保存後にリロードすると、入力したデータ内容がアラートで表示されます。
localStorageの使い方のデモページ
1つのkeyに値を複数保存する
データを一旦文字列に変換することで、1つのkeyに対して値を複数保存することができます。
保存
保存する際にJSON.stringify()を使ってデータを文字列に変換します。
localStorage.setItem(key, JSON.stringify(value));
参照
呼び出したデータをJSON.parse()を使ってオブジェクトに変換します。
var data = JSON.parse(localStorage.getItem(key));
以下は実際に組み込んだサンプルです。
HTML
<button id="del">削除</button>
JavaScript
var storageKey = 'keyName2';
var storageData = JSON.parse(localStorage.getItem(storageKey));
console.log(storageData);
var saveData = [
{
key1: 'data1-1',
key2: 'data1-2',
key3: ['data1-3-1', 'data1-3-2']
}, {
key1: 'data2-1',
key2: 'data2-2',
key3: ['data2-3-1', 'data2-3-2']
}
];
localStorage.setItem(storageKey, JSON.stringify(saveData));
var del = document.getElementById('del');
del.onclick = function() {
localStorage.removeItem(storageKey);
};
1回目のアクセスではconsoleにnullが表示されますが、データを保存した2回目以降はconsoleに複数のデータが表示されます。
1つのkeyに値を複数保存するデモページ
【参考サイト】
コメントが承認されるまで時間がかかります。