Предоставление пользователям доступа к автономным веб-приложениям HTML5

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

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

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

person smeeb    schedule 26.09.2014    source источник
comment
Вам следует прочитать эту статью: diveintohtml5.info/offline.html   -  person caffeinated.tech    schedule 26.09.2014
comment
Спасибо @LcLk (+1) - я должен был упомянуть об этом, но я уже читал эту статью. К сожалению, в статье не рассматриваются два момента: - /   -  person smeeb    schedule 26.09.2014
comment
ах, кажется, я помню, что это было, позвольте мне проверить это еще раз, может быть, я хотел взять другую ссылку из моей гигантской папки закладок ...   -  person caffeinated.tech    schedule 26.09.2014


Ответы (1)


Хорошо, поэтому я фактически прочитал ответ на эти вопросы не в статье diveintohtml5, а в ссылках, на которые она ссылалась:

  1. В этой связанной статье описано, как вы можете проверить в JS, подключены ли вы сейчас к сети или работаете с кешированной страницы. Теперь, чтобы использовать это в полной мере, у вас должны быть две версии вашего кода API (то, что вы используете для получения ресурсов сервера):

    1. one for online use, with HTTP get/post, which then stores data locally using 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

person caffeinated.tech    schedule 26.09.2014
comment
Еще раз спасибо @LcLk (+1) - но для пункта 2, какой URL-адрес пользователь увидит в адресной строке своего браузера при использовании моего приложения в автономном режиме? - person smeeb; 26.09.2014
comment
Я пока только читал и не тестировал что-либо из этого, но я предполагаю тот же URL-адрес, что и обычно, у меня есть сервер узла, работающий в атм, я смоделирую пример и отчитаюсь - person caffeinated.tech; 26.09.2014