Возможно ли использовать режим офлайн-режима в (HTML5) браузере?
Можно ли создать приложение внутри браузера? Приложение означает:
1 Если между браузером и удаленным сервером приложений существует соединение (онлайн-режим):
- приложение работает в типичном веб-режиме
- приложение хранит необходимые данные в автономном хранилище, которые будут использоваться в автономном режиме (2)
- приложение синхронизирует/удаляет данные (снятые в автономном режиме) обратно на сервер, когда он возобновляется из автономного режима обратно в онлайн-режим.
2 Если между браузером и удаленным сервером приложений существует соединение (автономный режим):
- приложение все равно будет работать (javascript?)
- приложение будет предоставлять данные (которые хранятся в автономном режиме) пользователю
- приложение может принимать входные данные от пользователя (и хранить/добавлять в автономном хранилище)
Возможно ли это? Если ответ является да, существует ли какая-либо (Ruby/Python/PHP) структура?
Спасибо
Ответы
Ответ 1
Да, это возможно.
-
Вам нужно написать приложение в Javascript и как-то обнаружить, находится ли браузер в автономном режиме (проще всего опросить сервер раз в то время). (Изменить: см. Комментарии для лучшего способа обнаружения автономного режима)
-
Убедитесь, что ваше приложение состоит только из статических файлов HTML, Js и CSS (или задайте политику кэширования вручную в script, чтобы ваш браузер запомнил их в автономном режиме). Обновления на странице выполняются с помощью JS DOM-манипуляции, а не через сервер (здесь может помочь инфраструктура, такая как ExtJS http://www.extjs.com)
-
Для хранения используйте модуль, такой как PersistJS (http://github.com/jeremydurham/persist-js), который использует локальное хранилище браузера для хранения отслеживать данные. Когда соединение восстанавливается, синхронизируйтесь с сервером.
-
Вам необходимо предварительно кэшировать изображения и другие используемые ресурсы, иначе они будут недоступны в автономном режиме, если вы раньше не использовали их.
-
Опять же: основная часть вашего приложения должна быть в javascript, структура PHP/Ruby/Python поможет вам немного, если сервер недоступен. Возможно, сервер хранится как можно проще, REST-подобный API AJAX для хранения и загрузки данных.
Ответ 2
"Let Take This Offline" глава в книге Марка Пилигрима (онлайн) Погружение в HTML5 - очень хороший обзор написания оффлайновых веб-приложений с технологиями HTML5.
Примечание: Поскольку оригинальное погружение с Mark Pilgrim Dive в HTML5, похоже, не работает.
Теперь копии можно найти здесь среди других мест.
Ответ 3
Джейк Арчибальд написал "Поваренная книга в автономном режиме". Современный (9 декабря 2014 года) и приятный подход с ServiceWorker:
http://jakearchibald.com/2014/offline-cookbook/
Ответ 4
Здесь статья hacks.mozilla.org с демо: http://hacks.mozilla.org/2010/01/offline-web-applications/
Еще одно демо.
Более подробная документация: https://developer.mozilla.org/en/HTML/HTML5#Web_application_features
Ответ 5
Javascript предоставляет вам возможность автономного режима веб-сайта и называется UpUp Javascript Framework.
Маленький script, который гарантирует, что ваш сайт всегда будет доступен вашим пользователям, даже если они находятся на самолете или 20 000 лиг под водой.
<html>
<head>
<meta charset="UTF-8">
<title>Lonely Globe Advisor</title>
</head>
<body>
<h1>Top Hotels in Rome</h1>
<ol>
<li>Villa Domus - Via Piacenza 9, Rome, Italy</li>
<li>Hotel Trivelli - Piazza Barberini 11, Rome, Italy</li>
</ol>
<script src="/upup.min.js"></script>
<script>
UpUp.start({
'content-url': 'offline.html',
'assets': ['css/bootstrap.min.css', 'css/offline.css']
});
</script>
</body>
</html>
Теперь содержимое, которое наши пользователи видят, когда они находятся в автономном режиме, представляет собой содержимое offline.html. Это простой HTML файл, отличный от любой другой страницы нашего сайта.
Наш файл offline.html содержит два файла css: bootstrap.min.css и offline.css. Убедитесь, что они кэшированы и доступны нашим пользователям, когда они находятся в автономном режиме.
Ответ 6
Посмотрите на Google Gears, http://code.google.com/apis/gears/. Хотя они были отменены в пользу HTML5. Однако, похоже, что то, что толкуется как HTML5, - Google Gears.
Ответ 7
Я тоже искал это, я узнал abt HTML5 Offline Web Apps. havent попробовал это
Пользователи типичных онлайновых веб-приложений могут использовать приложения только в том случае, если у них есть подключение к Интернету. Когда они выходят в автономный режим, они больше не могут проверять свое электронное письмо, просматривать свои календарные встречи или готовить презентации с помощью своих онлайн-инструментов. Между тем, собственные приложения предоставляют эти функции: локальные папки кэшей почтовых клиентов локально, календари хранят свои события локально, пакеты презентаций хранят свои файлы данных локально.