【问题标题】:chrome temporary storage is not resetchrome临时存储未重置
【发布时间】:2013-01-08 16:46:24
【问题描述】:

查看Storage后,我想尝试重置临时存储以进行测试。

window.webkitStorageInfo.requestQuota(webkitStorageInfo.TEMPORARY, 5*1024*1024,  
    function( bytes ) {
        console.log( "Quota is available: " + bytes );
    },
    function( e ) {
        console.log( "Error allocating quota: " + e );
    }); 

window.webkitStorageInfo.queryUsageAndQuota(webkitStorageInfo.TEMPORARY, 
    //the type can be either TEMPORARY or PERSISTENT
    function(used, remaining) {
        console.log("Used quota: " + used + ", current quota: " + remaining);
    }, function(e) {
         console.log('Error', e); 
    });

requestQuota() 设置临时存储大小,queryUsageAndQuota() 告诉我当前配额是多少。但是,当我在 chrome 浏览器中查看控制台日志时,虽然设置了新配额,但 queryUsageAndQuota() 并没有反映出来。我得到了一些类似的东西:

Quota is available: 5242880
Used quota: 0, current quota: 214748364

即使我预计什么是可用的和当前的配额是相同的。这是为什么呢?

【问题讨论】:

    标签: javascript html google-chrome chromium


    【解决方案1】:

    比较这两个输出

    代码 1

    window.webkitStorageInfo.requestQuota(webkitStorageInfo.TEMPORARY, 
                 5188955171*1024*1024,  
        function( bytes ) {
            console.log( "Quota is available: " + bytes );
        },
        function( e ) {
            console.log( "Error allocating quota: " + e );
        }); 
    
    window.webkitStorageInfo.queryUsageAndQuota(webkitStorageInfo.TEMPORARY, 
        //the type can be either TEMPORARY or PERSISTENT
        function(used, remaining) {
            console.log("Used quota: " + used + ", current quota: " + remaining);
        }, function(e) {
             console.log('Error', e); 
        });
    

    输出 1

    Quota is available: 5188982205
    Used quota: 492, current quota: 5188982205
    

    代码 2

    window.webkitStorageInfo.requestQuota(webkitStorageInfo.TEMPORARY, 5*1024*1024,  
        function( bytes ) {
            console.log( "Quota is available: " + bytes );
        },
        function( e ) {
            console.log( "Error allocating quota: " + e );
        }); 
    window.webkitStorageInfo.queryUsageAndQuota(webkitStorageInfo.TEMPORARY, 
        //the type can be either TEMPORARY or PERSISTENT
        function(used, remaining) {
            console.log("Used quota: " + used + ", current quota: " + remaining);
        }, function(e) {
             console.log('Error', e); 
        });
    

    输出 2

    Quota is available: 5242880
    Used quota: 0, current quota: 214748364
    

    在您的情况下,您请求了一个较小的配额5242880,该配额已经可用且小于可用数量,因此它返回一个带有请求配额的successCallback!通过请求大量重置配额!

    window.webkitStorageInfo.requestQuota 用于请求更多存储空间超过可用空间,Chrome 会自动为您的应用提供临时存储空间,因此您无需请求分配(最多 20% 的共享空间)池)

    参考文献

    【讨论】:

    • +1 这是有道理的,但我个人认为,取回实际配额比简单传递的数量更有用。
    • @pimvdb: 嗯,我有不同的看法,逻辑流程应该是 1) 首先使用 queryUsageAndQuota 获得实际配额,然后 2) 通过检查他的范围,使用 requestQuota 请求额外配额要求;如果用户请求的配额少于可用配额并且系统返回他请求的值,我怎么看没有伤害!
    • @Sudarshan 我的测试重点是尝试将配额设置为小于已经存在的配额(而不是更多)。所以我想在这方面这是不可能的?
    • @user1655072:是的,没有 API 可以修改配额低于可用配额
    猜你喜欢
    • 2016-10-31
    • 1970-01-01
    • 1970-01-01
    • 2016-06-18
    • 2018-05-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-02-27
    相关资源
    最近更新 更多