###実現したいこと
PHPからデカい値を取得しローカルストレージに入れるにあたって、その成否を判定したいです。
###発生している問題
値がデカいため入りきらなかったときは別の処理を行いたいのですが、「入りきらなかったこと」を判定する方法がわかりません。
###該当のソースコード
下記でPHPから取得します。dekai
がデカい値で、これが入ったかどうかを判定したいです。
jQUery
1function dekaiInsert(){ 2 $.ajax({ url:'http://example.com/ajax', type:'POST', data:{action:'dekaiAjax'} }) 3 .done(function( dekai ) { 4 localStorage.setItem( 'デカい値', dekai ); 5 }); 6}
###試したこと
上の実行後に、「そのキーへアクセスできること」を判定すれば出来るかもと思い、下記hasLocalStorage()
を試しました。
しかし「入りきらなかったこと」とは無関係なようで、入りきらなかった場合でもtrue
が返ってしまいました。
jQuery
1$(window).on('load', function() { 2 3 // デカい値を入れる 4 dekaiInsert(); 5 6 // 入りきらなければfalseとしたいが、trueが返ってしまう 7 var hantei = hasLocalStorage( 'デカい値' ); 8 console.log( '判定結果', hantei ); 9 10 // 「入りきらなかったこと」を判定して処理を分けたい 11 if ( hantei ) { 12 // 入りきったときの処理 13 }else{ 14 // 入りきらなかったときの処理 15 } 16}); 17 18// 「そのキーへアクセスできること」を判定 19function hasLocalStorage( checkKey ) { 20 try { 21 window.localStorage.setItem(checkKey, 1); 22 window.localStorage.getItem(checkKey); 23 return true; 24 } catch(e) { 25 return false; 26 } 27} 28
回答3件
あなたの回答
tips
プレビュー