Я разрабатываю автономное приложение, которое также имеет набор страниц .php. В настоящее время я поместил эти файлы php в файлы манифеста .appcache, и он отлично работает. Но проблема в том, что даже если я в сети, когда я пытаюсь получить доступ к странице php, она загружает кешированную версию. Что я предпочитаю, так это функциональность, подобную этой,
- Если онлайн - подключитесь к серверу и загрузите актуальную информацию, а кешированную перезапишите новой информацией.
- Если офлайн - показать последнюю обновленную статическую html-страницу.
Вот содержимое моего файла манифеста .appcache
CACHE MANIFEST
#2
taskmanager.php
public/css/bootstrap.css.map
public/css/bootstrap.min.css
public/css/bootstrap-theme.css.map
public/css/bootstrap-theme.min.css
public/css/main.css
public/css/task-manager.css
public/js/app.js
public/js/taskmanager.js
public/js/offlink.js
public/js/jquery-2.1.4.js
public/js/bootstrap.min.js
NETWORK:
*
http://*
Что делает taskmanager.php, так это считывает задачи из базы данных и показывает их. Когда я кэширую его, как указано выше, он всегда будет отображать список задач при первой загрузке. Даже когда я в сети, он не вызывает базу данных и не получает новые записи. Вместо этого он загружается из кеша. Итак, мое решение состояло в том, чтобы поместить его в раздел FALLBACK, как указано в первом ответе. Даже если я помещу файл taskmanager.php в раздел FALLBACK, как показано ниже,
FALLBACK
taskmanager.php static_taskmanager.php
Теперь, если у меня есть подключение к Интернету, запустится taskmanager.php и покажет мне последние задачи. Но я хочу сделать static_taskmanager таким образом, чтобы он синхронизировался с этим последним набором задач. Это означает, что когда пользователь выходит из сети, static_taskmanager.php покажет самый последний список задач, который был возвращен taskmanager.php, когда пользователь был в сети). Но на данный момент он работает как полноценная статическая страница.
- Можно ли сделать это?
- Как я могу решить эту проблему?
ИЗМЕНИТЬ
Как я понял, выполняя поиск в SO и Google, одним из способов достижения этого является загрузка динамического контента с использованием AJAX. Но мне интересно, можно ли это сделать, используя только сам файл манифеста.