有哪些细节可以从webkitStorageInfo.queryUsageAndQuota()获得(W

2019-06-25 08:38发布

webkitStorageInfo.queryUsageAndQuota()用来找出已存储在使用HTML5文件系统API,我想在文件系统中的文件的使用情况统计信息。 谁能给我,可以在提供给这个函数的回调中获得的细节。

window.webkitStorageInfo.queryUsageAndQuota(webkitStorageInfo.PERSISTENT, function() {
   //what all details can be obtained in this function as its arguments?
})

Answer 1:

替换function(){...}console.log.bind(console) ,你会找到答案。

> window.webkitStorageInfo.queryUsageAndQuota(webkitStorageInfo.PERSISTENT, console.log.bind(console))
undefined  // Return value of ^
0 0        // Printed results, argument 0 and argument 1

回调的解释被发现这里 :

interface StorageInfo { 
  ....
  // Queries the current quota and how much data is stored for the host. 
  void queryUsageAndQuota( 
      unsigned short storageType, 
      optional StorageInfoUsageCallback successCallback, 
      optional StorageInfoErrorCallback errorCallback); 
  ...
[NoInterfaceObject, Callback=FunctionOnly] 
interface StorageInfoUsageCallback { 
  void handleEvent(unsigned long long currentUsageInBytes, 
                   unsigned long long currentQuotaInBytes); 
};

所以,第一个数字表示了多少字节使用,
第二个数字表示配额的大小。



Answer 2:

下面是两个例子与当前的API。

它采用navigator.webkitPersistentStorage.requestQuota ,而不是过时的window.webkitStorageInfo.queryUsageAndQuota

查询配额

navigator.webkitPersistentStorage.queryUsageAndQuota ( 
    function(usedBytes, grantedBytes) {  
        console.log('we are using ', usedBytes, ' of ', grantedBytes, 'bytes');
    }, 
    function(e) { console.log('Error', e);  }
);

请求限额

var requestedBytes = 1024*1024*280; 

navigator.webkitPersistentStorage.requestQuota (
    requestedBytes, function(grantedBytes) {  
        console.log('we were granted ', grantedBytes, 'bytes');

    }, function(e) { console.log('Error', e); }
);

这里我们使用navigator.webkitPersistentStorage查询和请求持久存储配额。 您还可以使用navigator.webkitTemporaryStorage 临时存储配额工作。

目前的Chrome实现跟踪这个特定的规范版本,它描述的东西多一点: https://www.w3.org/TR/quota-api/ 。

他们还特意解释之间的差别temporarypermanent 这里 :临时数据更像是你的tmp文件夹或弱引用,因为,事情可能会在系统的兴致被删除,而永久性的数据总是应该得到删除之前通知用户。

你可能要开始与包装,以逃避所有附带针对Web API的工作浏览器的兼容性地狱(规格明确国家的很多地方:“这是一个建议,并可能更改,恕不任何通知”)。 Dexie ,例如,是IndexedDB的一个积极发展的包装。

chromestore.js是另一种包装(但多年没有被感动)。



Answer 3:

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

使用,其余地方都是以字节为单位

来自谷歌devlopers



文章来源: What are the details can be obtained from webkitStorageInfo.queryUsageAndQuota()