2014-09-26 2 views
2

Мне нужно создать веб-приложение, которое полностью можно использовать в удаленных/полевых/автономных средах. Оно выглядит как HTML5 supports an "offline mode" с довольно сложным механизмом кэширования.Предоставление пользователям доступа к автономным веб-приложениям HTML5

Несколько вопросов:

  1. Помимо кэширования ресурсов JS/CSS/изображений, я также нужен способ незавершенного/макет/изменить маршрут асинхронные/Ajax звонков после «загрузки» страницы. Например, в «онлайн-режиме», если пользователь нажимает кнопку, это обычно отправляет HTTP-сообщение POST на сервер. Но в режиме «off-line mode» мне нужно, чтобы он каким-то образом хранили локальную версию HTTP POST. Затем, когда пользователь возобновляет «онлайн-режим», приложение будет достаточно интеллектуальным, чтобы запросить кеш и отключить запрос. Возможно ли это? Если да, то что называется этим механизмом и где он документирован?
  2. Как ожидали ли пользователи мирян найти офлайн-приложения HTML5?!? Они будут знать, чтобы перейти в http://www.myapp.example.com в «онлайн-режиме», но в то время как «off-line» им обычно нужно было перейти к URL-адресу браузера, начинающемуся с file:///some/path/on/their/system/to/the/cached/offline/app, правильно? Имеет ли HTML5 что-нибудь, чтобы сделать это более «удобным для пользователя»? Например, в автономном режиме пользователь может перейти к обычному онлайн-адресу (myapp.example.com), но затем браузер автоматически обнаруживает перебои в сети и обслуживает все, что у него есть в кеше? Или что-то типа того?
+1

Вы должны прочитать эту статью: http://diveintohtml5.info/offline.html –

+0

Спасибо @LcLk (+1) - я говорил об этом, но я уже читал эту статью. К сожалению, это два момента, в которых статья не затрагивает: -/ – smeeb

+0

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

ответ

1

Хорошо, так что я должен был Infact прочитать ответ на эти вопросы не на diveintohtml5 статьи, но в ссылках он ссылается:

  1. Это linked article описано, как вы можете проверить в JS ли вы в настоящее время онлайн или работать с кэшированной страницей. Теперь, чтобы использовать это в полной мере вы должны иметь две версии кода API (то, что вы используете, чтобы ПОЛУЧИТЬ ресурсы сервера):

    1. один для использования онлайн, с HTTP GET/POST, который затем сохраняет данные локально с помощью indexdb
    2. один для использования в автономном режиме, который напрямую переходит на ваш indexdb или возвращается к недоступному ресурсу. Вероятно, вы также должны проверить, вернулся ли пользователь здесь и переключиться на альтернативный метод.
  2. После того, как пользователь посетил страницу с манифестом кэша, и ваш браузер знает, как справиться с этим, в следующий раз, когда вы пытаетесь получить доступ к его и вы в автономном режиме, то браузер делает все это для вас: https://html.spec.whatwg.org/multipage/browsers.html#offline , http://googlecode.blogspot.ie/2009/05/gmail-for-mobile-html5-series-part-3.html

+0

Еще раз спасибо @LcLk (+1) - но для №2, какой URL-адрес будет отображаться пользователем в адресной строке браузера при офлайн-приложении? – smeeb

+0

Я до сих пор только читал и не тестировал ничего из этого, но я принимаю тот же url, что и обычно, у меня есть сервер узлов, на котором работает atm, я буду макетировать пример и отчитываться –

Смежные вопросы