Это много вопросов, вы можете подумать о том, чтобы разбить их на более легко отвечаемые части, которые напрямую связаны с тем, чего именно вы пытаетесь достичь.А пока я постараюсь дать краткий ответ на каждый из ваших вопросов:
Моя первая проблема - насколько надежны API автономных приложений на данный момент.
Достаточно надежные, они были реализованы для ряда версий в большинстве основных веб-браузеров (кроме IE) .
- это веб-приложение, к которому только что обращались (в автономном режиме), перейдя втот же самый URL-адрес, с которого вы изначально загрузили приложение?
Да.Как только автономное приложение было кэшировано, приложение обслуживается из этого кэша.Сетевые запросы не будут выполняться, если вы явно не запросите URL-адреса из разделов манифеста NETWORK
или FALLBACK
или не будут включены в манифест вообще, за исключением проверки того, изменился ли сам манифест.
Это автономное приложение все еще должно поддерживать связь с локальными серверами, в идеале я хотел бы избежать размещения веб-сервера, однако соединение с сокетом было бы правдоподобным.
AВеб-сокет все еще требует веб-сервера.Начальное рукопожатие для веб-сокета - HTTP . Веб-сокет - это не то же самое, что сокет в TCP / IP .
Насколько хорошо веб-сокеты в настоящее время работают, когда браузер отключен?
Они вообще не будут работать, если вы установите браузер в автономный режим, он вообще не будет отправлять запросы в сеть.Обратите внимание, что браузер, установленный в автономный режим, - это не то же самое, что автономный браузер в «автономном API».Автономный API-интерфейс в первую очередь связан с тем, можно ли получить доступ к серверу, на котором размещено приложение, а не с тем, подключен ли в настоящее время браузер к сети или эта сеть подключена к Интернету.Если сервер отключается, приложение просто отключается, как если бы сетевой кабель на компьютере пользователя был отключен.Прочитайте этот пост , в частности комментарии.Мой обычный подход к обнаружению статуса в автономном режиме - настроить пару файлов в разделе FALLBACK
таким образом, чтобы вы получали один файл в режиме онлайн, а другой - в автономном режиме - запросите этот файл с помощью AJAX и посмотрите, что у вас получится.
Возможно ли иметь полностью сетевое / интерактивное браузерное приложение, работающее даже без активного подключения к Интернету?
Да, но я не думаю, что это означает то, что, по вашему мнению, происходит.Отдельные экземпляры приложения, работающего в разных браузерах на разных машинах, не смогут обмениваться данными друг с другом без прохождения через веб-сервер.Тем не менее, не требуется, чтобы веб-сервер был «в Интернете», он будет прекрасно работать в локальной сети.