HTML5 Cache Manifest Как запросить, чтобы кэшированный файл просматривался онлайн, если это возможно? - PullRequest
0 голосов
/ 11 марта 2012

Я разрабатываю веб-приложение HTML5 для iPhone и застрял в довольно странной ситуации. Мне нужно кэшировать все это для использования в автономном режиме, и это нормально, но дело в том, что, когда вы подключаетесь к сети позже, он все еще использует версию кеша. Мне нужно, чтобы приложение использовало онлайн-версию вместо кэшированной версии, когда это возможно, но мне не удается найти какую-либо информацию об этом.

Заранее спасибо!

1 Ответ

1 голос
/ 11 марта 2012

Я не знаю, какой фреймворк вы используете, но в Sencha вам нужно указать использование сети, выполнив что-то вроде этого:

NETWORK:
*

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

Теперь, это становится немного сложнее.

Статья: http://www.sencha.com/learn/taking-sencha-touch-apps-offline/

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

Затем вы хотите создать прослушиватель без тайм-аута, чтобы определить, в автономном режиме вы или в сети.

Если время ожидания истекло, используйте локальный прокси.Как это:

this.onlineStore.addListener('load', function () {
    console.log("I think we are online");
    helloWorld.offlineStore.proxy.clear();
    this.each(function (record) {
        var photo = helloWorld.offlineStore.add(record.data)[0];
    });
    helloWorld.offlineStore.sync();
    helloWorld.gallery.bindStore(helloWorld.offlineStore);
});
...