html5文件配额路径,Safari的html5 localStorage错误:"QUOTA_EXCEEDED_ERR:DOM例外22:尝试向超出配额的存储添加内容."...

Pierre Le Ro..

11

在我的上下文中,刚开发了一个类抽象.当我的应用程序启动时,我通过调用getStorage()检查localStorage是否正在工作.此功能还返回:

如果localStorage正在工作,则localStorage

或自定义类LocalStorageAlternative的实现

在我的代码中,我从不直接调用localStorage.我调用cusSto global var,我通过调用getStorage()初始化了.

这样,它适用于私人浏览或特定Safari版本

function getStorage() {

var storageImpl;

try {

localStorage.setItem("storage", "");

localStorage.removeItem("storage");

storageImpl = localStorage;

}

catch (err) {

storageImpl = new LocalStorageAlternative();

}

return storageImpl;

}

function LocalStorageAlternative() {

var structureLocalStorage = {};

this.setItem = function (key, value) {

structureLocalStorage[key] = value;

}

this.getItem = function (key) {

if(typeof structureLocalStorage[key] != 'undefined' ) {

return structureLocalStorage[key];

}

else {

return null;

}

}

this.removeItem = function (key) {

structureLocalStorage[key] = undefined;

}

}

cusSto = getStorage();

谢谢皮埃尔,你的回答激励了我.我最终把它打包在一个名为[memorystorage]的漂亮模块中(https://download.github.io/memorystorage).当然是开源的.对于有相同问题的其他人,请查看它可能会对您有所帮助. (2认同)

@ user1149244*这不应该存储在浏览器中的值吗?*不,它不能.客户端从一个页面刷新到另一个页面刷新有三种方法:cookies,sessionStorage/localStorage和IndexedDB.最后两个相对较新.sessionStorage和localStorage得到广泛支持,因此您可以在任何地方使用它.**除了隐私浏览模式**,这就是这个问题.程序破了,因为存储不存在.memorystorage只提供在页面上始终有效的回退,但它实际上无法保存数据.这是一个存根.但没有错误. (2认同)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值