9月更新・前月(8月)の人気記事トップ10 09/02/2024
- ( 01 – ) 【Labs】position:absoluteとwidth:100%を指定すると横幅の設定がうまくいかない場合の対処方法について
- ( 07 ↑) 【Mac】macOSをHigh SierraからMontereyにアップグレード
- ( 03 – ) 【Mac】横画面で撮影した動画をYouTubeショート用にMacのiMovieで縦画面に編集する方法
- ( 10 ↑) 【iPhone / iPad】iPhoneのツイッターアプリでユーザー名をコピーする方法
- (圏外↑) 【Labs】CSSだけでドロップダウンメニュー
- ( 02 ↓) 【jQuery】入門2. jQueryをHTMLに組み込む
- ( 09 ↑) 【Mac】Safariでソースコードを見る方法
- ( 04 ↓) 【jQuery】入門7. jQueryで新しいWindowを開く
- ( 06 ↓) 【2024年5月】iPad画面解像度まとめ
- (圏外↑) 【GIMP】レイヤーをロック
【Labs】ローカルストレージとクッキー
こんにちは(・∀・)
今回はJavaScriptのローカルストレージとクッキーのサンプルをご紹介します。
ローカルストレージとクッキー
クッキーに代わり最近主流となりつつあるローカルストレージですが、未だIEでは未対応です。
今回たまたま別々の案件でローカルストレージとクッキーを使用する機会がありましたのでその覚書をかねて投稿します。
ローカルストレージ
ローカルストレージのサンプルです。
JavaScript
_name = "sample";
function samplefunc(obj){
localStorage.setItem(_name,obj);
window.location.reload(true);
}
var _value = localStorage.getItem(_name);
if(_value == 0){
_value = 0;
}else if(_value == 1){
_value = 1;
}else{
_value = 0;
}
クッキー
クッキーのサンプルです。
JavaScript
_name = "sample";
function samplefunc(obj){
document.cookie = _name+"="+obj+"; expires=Fri, 31-Dec-2030 23:59:59 GMT; path=/;";
window.location.reload(true);
}
Cookie = document.cookie+";";
_set1 = Cookie.indexOf(_name);
if(_set1 != -1){
_set2 = Cookie.indexOf("=",_set1);
_set3 = Cookie.indexOf(";",_set2);
_value = Cookie.substring(_set2+1, _set3);
}else{
_value = 0;
}
ローカルストレージとクッキーを両方使用する場合
ローカルストレージとクッキーを同時に使用することはまずないと思いますが、一応両方使用する場合のサンプルです。
JavaScript
document.write('<!--[if !IE]><!-->');
/*ローカルストレージ*/
_name = "sample";
function samplefunc(obj){
localStorage.setItem(_name,obj);
window.location.reload(true);
}
var _value = localStorage.getItem(_name);
if(_value == 0){
_value = 0;
}else if(_value == 1){
_value = 1;
}else{
_value = 0;
}
document.write('<!--<![endif]-->');
document.write('<!--[if IE]>');
/*クッキー*/
_name = "sample";
function samplefunc(obj){
document.cookie = _name+"="+obj+"; expires=Fri, 31-Dec-2030 23:59:59 GMT; path=/;";
window.location.reload(true);
}
Cookie = document.cookie+";";
_set1 = Cookie.indexOf(_name);
if(_set1 != -1){
_set2 = Cookie.indexOf("=",_set1);
_set3 = Cookie.indexOf(";",_set2);
_value = Cookie.substring(_set2+1, _set3);
}else{
_value = 0;
}
document.write('<![endif]-->');
条件分岐でIEとそれ以外で振り分けているだけです。
ローカルストレージとクッキーを同時に使用する場合、ローカルストレージ、クッキーの順に書かないと正しく動作しません。
こうやって並べて書くとローカルストレージの書き方はクッキーより簡単になったのがわかりますね。