jstorage设置结果不持久

时间:2014-03-04 23:51:50

标签: javascript jstorage

我们从jquery调用jstorage,如:

$.jstorage.set("foo","bar object");

后来我们寻找这个关键“foo”消失了!为什么会这样?我们在jstorage deleteKey方法上设置了断点,但没有被调用。

具体做法是:

$。jstorage.index()

不包含“foo”。

1 个答案:

答案 0 :(得分:0)

好主我找到了答案。让我们看看jstorage.js中的_save方法,用于持久化该set调用:

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,实在太好了。我是一只伤心的熊猫。