次のように jquery から jstorage を呼び出しています。
$.jstorage.set("foo","bar object");
後で、このキー「foo」がなくなっていることを確認します。これはなぜでしょうか?jstorage deleteKey メソッドにブレークポイントを設定しましたが、呼び出されていません。
具体的には:
$.jstorage.index()
「foo」は含まれません。
次のように jquery から jstorage を呼び出しています。
$.jstorage.set("foo","bar object");
後で、このキー「foo」がなくなっていることを確認します。これはなぜでしょうか?jstorage deleteKey メソッドにブレークポイントを設定しましたが、呼び出されていません。
具体的には:
$.jstorage.index()
「foo」は含まれません。
神様、私は答えを見つけました。set 呼び出しを永続化するために使用される jstorage.js の _save メソッドを見てみましょう。
function _save(){
_dropOldEvents(); // remove expired events
try{
_storage_service.jStorage = JSON.stringify(_storage);
// If userData is used as the storage engine, additional
if(_storage_elm) {
_storage_elm.setAttribute("jStorage",_storage_service.jStorage);
_storage_elm.save("jStorage");
}
_storage_size = _storage_service.jStorage?String(_storage_service.jStorage).length:0;
}catch(E7){/* probably cache is full, nothing is saved this way*/}
}
では、jstorage ライブラリでは、ローカル ストレージがいっぱいで書き込みができない場合、そのデータが永続化されている場合、単純にその例外を取得して飲み込みます。うーん!
例外を教えてください。ローカル コピーでは、少なくともこれをコンソール ログに出力します。しかし、FireFox では 5 MB、Chrome では 2.5 MB の上限を持つローカル ストレージは、本当に信じられないほど良いものでした。私は悲しいパンダです。