web storageは同一オリジンでデータを保存しています。同階層、下ディレクトでも使えます。sessionStorage(タブが閉じられるまで)とloacalStorage(ブラウザ自体に保存)の二種類があります。chrome developer toolのapplicationパネルで確認できます。

<script>
(function(){
if (typeof(Storage) === "undefined"){
alert("web storage not supported");
} else {
// console.log("supported");
// var s = sessionStorage;
var s = localStorage;
s.setItem('name', 'okada');
console.log(s.getItem('name'));
}
})();
</script>
setItemと削除
<script>
(function(){
if (typeof(Storage) === "undefined"){
alert("web storage not supported");
} else {
var ls = localStorage;
var ss = sessionStorage;
ls.setItem('yamada', 20);
ls.setItem('kimura', 69);
ss.setItem('color', 'pink');
ss.setItem('shape', 'cube');
// removeItem(key)
// clear()
ls.removeItem('yamada');
ss.clear();
}
})();
</script>
lengthとkey
<script>
(function(){
if (typeof(Storage) === "undefined"){
alert("web storage not supported");
} else {
var s = localStorage;
s.setItem('okamoto', 90)
s.setItem('murata', 60)
s.setItem('ito', 50)
for (var i = 0; i < s.length; i++){
console.log(s.key(i) + ':' + s.getItem(s.key(i)));
}
}
})();
</script>
JSON(javascript object nation)
<script>
(function(){
if (typeof(Storage) === "undefined"){
alert("web storage not supported");
} else {
var s = localStorage;
var user = {
name: 'yoshida',
score: 50
};
s.setItem('user', JSON.stringify(user));
console.dir(JSON.parse(s.getItem('user')));
}
})();
</script>
データの整合性
<script>
(function(){
if (typeof(Storage) === "undefined"){
alert("web storage not supported");
} else {
var s = localStorage;
s.setItem('name','kurumada');
window.addEventListener('storage', function(e){
console.log(e.key + ':' + e.oldValue + '->' + e.newValue);
});
}
})();
</script>