HTML5离线应用程序的数据库

时间:2012-09-21 10:52:05

标签: jquery json html5 offline-caching

如何使用JSON字符串(相当大)作为HTML5的数据库

我知道我们可以使用localStorage.setItem('key',value)来存储特定值。我的JSON字符串包含200到300条记录

[{"key":"value"....},
{"key":"value"....},
{"key":"value"....},
......
.....
...
//around 300
]

现在我将整个JSON放在div display noneJSON并访问$.parseJSON($('#mydivid').html()); 这样

{{1}}

还有其他替代建议吗?谢谢

1 个答案:

答案 0 :(得分:1)

我不确定我是否理解这个问题。

假设您的服务器生成了一个json文件(如果您愿意,可以使用MB),您可以使用简单的ajax查询获取它,解析它,然后将其用作

var myval = database['somekey'];

你不应该将它包装在你的html中,如果只有数据库发生变化,它会阻止页面的正常缓存。

您的json将存储或生成在第二个单独的.json文件中(您可以在PHP中生成)。

获取它的功能如下所示:

var database;

function fetchDatabse(callback) {
    var httpRequest = new XMLHttpRequest();
    httpRequest.onreadystatechange = function() {
        if (httpRequest.readyState === 4) {
            if (httpRequest.status === 200) {
                database = eval('('+httpRequest.responseText+')');
                if (callback) callback();
            }
        }
    };
    httpRequest.open('GET', 'database.json?time='+(new Date().getTime()));
    httpRequest.send(); 
}

请注意,通常使用ajax查询仅获取数据库的某些部分会更好。


如果真的想要在页面中嵌入json,而不是将其嵌入隐藏的div中,请将其嵌入脚本中:

<script>
var database = {
   ...
};
</script>