В Android WebView, в чем разница между `DomStorage`, `Database`, `AppCache`?

Какая разница между DomStorage, Database и AppCache в Android WebView?

Меня смущают эти три настройки. Теперь мне нужен экземпляр WebView, который я могу использовать localStorage в JavaScript.

Вот пример:

        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() {}
        );
    }

В приведенном выше коде я действительно получаю изображение из Интернета, и оно будет загружено из локального хранилища в следующий раз, когда оно мне понадобится, но хранилище длится только до тех пор, пока время жизни приложения.

Если я перезапущу свое приложение, изображение снова будет загружено из Интернета.

Я настраиваю свой WebView следующим образом:

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

но я вижу, что файлы в file:///data/data/com.xxx/databases остаются неизменными, когда я добавляю что-то в localStorage.

Итак, мой вопрос: как заставить мои веб-страницы хранить данные и сохранять их после закрытия приложения?

И имеет ли значение, если я использую несколько WebView в приложении и указываю DatabasePath на одну и ту же папку?

И если бы вы могли сказать мне разницу между DomStorage, Database и AppCache, было бы намного лучше!


person Aloong    schedule 23.02.2012    source источник


Ответы (2)


Я не уверен на сто процентов, но DomStorage кажется синонимом WebStorage. Это способ хранения данных на клиентском сайте в виде пар ключ=значение.
http://diveintohtml5.info/storage.html

База данных означает, что база данных SQL на стороне клиента будет включена.
http://www.html5rocks.com/en/tutorials/webdatabase/todo/

А AppCache — это метод, позволяющий сделать целые веб-сайты доступными для использования в автономном режиме.
http://appcachefacts.info/

person Marvin Emil Brach    schedule 31.07.2012

Проблема решена! Я только что сделал ошибку, используя file:///data/data/com.xxx/databases в качестве пути к базе данных, это должно быть просто /data/data/com.xxx/databases без file:// .

Все еще жду ответов на разные вопросы между DomStorage, Database, AppCache.

person Aloong    schedule 23.02.2012