在Android的WebView中,“DomStorage”,“Database”,“AppCache”之间有什么不同?

时间:2012-02-23 04:34:23

标签: javascript android caching local-storage android-webview

在Android的WebView中,DomStorageDatabaseAppCache之间的区别是什么?

我对这三个设置感到困惑。现在我需要一个WebView实例,我可以在JavaScript中使用localStorage

以下是一个例子:

        if (localStorage['avatar_user_' + nick]) {
        obj.src = localStorage['avatar_user_' + nick];
    } else {
        var url = avatar_path + nick + '/avatar.jpg';
        new Oauth().img("jpeg", url,
            function(data) {
                if (data != '') {
                    obj.src = data;
                    localStorage['avatar_user_' + nick] = data;
                }
            }, function() {}
        );
    }

在上面的代码中,我真的从网上获取了图像,它将在下次需要时从localStorage加载,但存储只能持续应用程序的生命周期。

如果我重新启动我的应用,那么图像将再次从网络加载。

我按如下方式设置我的WebView:

    mWebSettings.setAppCacheEnabled(true);
    mWebSettings.setDomStorageEnabled(true);
    mWebSettings.setDatabaseEnabled(true);
    mWebSettings.setDatabasePath("file:///data/data/com.xxx/databases");

但是当我在localStorage中添加内容时,我可以看到file:///data/data/com.xxx/databases中的文件保持不变。

所以我的问题是如何让我的网页存储数据并在应用关闭后保留它们?

如果我在应用中使用多个WebView并将DatabasePath指向同一个文件夹,这是否重要?

如果你能告诉我DomStorageDatabaseAppCache之间的区别,那就更好了!

2 个答案:

答案 0 :(得分:0)

问题解决了!我只是犯了一个错误,我使用file:///data/data/com.xxx/databases作为数据库路径,它应该只有/data/data/com.xxx/databases而没有file://

仍在等待DomStorageDatabaseAppCache之间的不同答案。

答案 1 :(得分:0)

我不是百分之百肯定,但DomStorage似乎是WebStorage的同义词。这是一种将客户端站点上的数据存储为键=值对的技术 http://diveintohtml5.info/storage.html

数据库意味着将启用客户端SQL数据库 http://www.html5rocks.com/en/tutorials/webdatabase/todo/

AppCache是​​一种让整个网站可供离线使用的技术 http://appcachefacts.info/