2010-09-02 52 views

回答

4

离线存储是内部存储。这并不意味着将某些文件导出到磁盘上的特定格式/特定文件夹。

2

您可以使用localstorage,但只允许您在浏览器的内部存储上存储某些内容(不能决定在何处以及如何写入数据)。

还有一个文件API,但在它的早期阶段和,现在,它不允许随意存储在客户端上的文件:

HTML 5 File API

3

Web存储API存储数据作为[键,值]对,其中两个键,值都是字符串。

因此,任何格式的数据都需要坚持这种本地存储机制。因此,举例来说,如果你有一个像一个JSON对象:

{ 
    name:'John', 
    gender:'male' 
} 

你可以把它传递的是一个字符串等之后,存储(通过JavaScript):

localStorage.setItem("myObj","{name:'John',gender:'male'}"); 

对于JSON对象,请使用JSON。 stringify()将它们转换为字符串并使用JSON.parse()将其读回。

0

比方说您已经创建数组或对象这样的。

var arrayOrObject = [{obj1:{name:John, age:16}},{obj2:{name:Jane, age:17}}]; 

您可以使用localStorage将此数据保存到本地设备。

if (typeof(localStorage) == 'undefined') { 
    alert('Your browser does not support HTML5 localStorage. Try upgrading.'); 
} 
else { 
    try {     
     localStorage.setItem("storedArrayOrObject", JSON.stringify(arrayOrObject)); 
          //saves to the database, “key”, “value”     
    } catch (e) { 
     if (e == QUOTA_EXCEEDED_ERR) { 
      alert('Quota exceeded!'); //data wasn’t successfully saved due to quota exceed so throw an error 
     } 
    } 
} 

要获得的数据数组或对象结构:

var getStoredArrayOrObject = JSON.parse(localStorage.getItem('storedArrayOrObject'));` 

要删除localStorage的数据:

localStorage.removeItem('storedArrayOrObject'); 

并不推荐这样做,但可供选择:

localStorage.clear();