Как добавить параметр в файл манифеста HTML5 для автономного режима? - PullRequest
1 голос
/ 28 октября 2010

У меня есть веб-приложение, и я хочу, чтобы оно также работало в автономном режиме. В этом приложении у меня просто есть форма, и я использую PHP для ее отправки. Я использую файл manifest.php, подобный описанному в http://building -iphone-apps.labs.oreilly.com / ch06.html .

Проблема в том, что мне нужно как-то добавить параметры из формы в манифест, для кэширования нужного файла, например файла welcome.php? Name = aaaa, а не welcome.php. Поэтому мне нужно использовать GET для имени в manifest.php. Но если я хорошо понял, файл манифеста создается в начале до отправки формы, поэтому значение в поле «имя» пусто.

Есть ли способ добавить эти параметры в мой файл манифеста для запуска приложения в автономном режиме?

Спасибо

Ответы [ 2 ]

0 голосов
/ 01 марта 2011

Из-за приложения кеш загружается после страницы, на которую он ссылается. Вам необходимо перезагрузить кэш с помощью ApplicatonCache.update (), когда параметры доступны.

Хитрость для ввода параметров в манифест состоит в том, чтобы установить куки перед вызовом update (). Ваш серверный скрипт получает куки и может генерировать соответствующий контент манифеста.

0 голосов
/ 28 октября 2010

Единственный способ сделать это - перечислить файлы с их параметрами в манифесте, так что вам нужно знать все возможные параметры заранее, а затем использовать файл manifest.php, чтобы выплюнуть их, заканчивая файл манифеста, который выглядит примерно так:

CACHE MANIFEST
welcome.php?name=aaaa
welcome.php?name=aaab
welcome.php?name=aaac
...thousands more lines...
welcome.php?name=zzzz

NETWORK:
welcome.php

Однако я настоятельно рекомендую вам не делать это таким образом, если (как это выглядит) вы хотите предоставить пользователю персональную страницу приветствия. При таком подходе каждый пользователь будет загружать каждую страницу приветствия, даже если ему нужно будет увидеть только одну из них.

Есть два подхода, которые, я думаю, будут работать лучше:

1: доставка персонализированных страниц

Если единственной вещью, которая изменяется, является эта страница, вынудите пользователя войти в систему, прежде чем получить доступ к странице welcome.php, затем используйте переменную сеанса вместо параметра запроса для доставки персонализированной страницы. Затем вам просто нужно указать welcome.php в вашем манифесте, и каждый пользователь будет кэшировать одну персонализированную версию.

2: создание полностью автономного приложения

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

Большинство ваших PHP-страниц в основном будут шаблонами, которые вы будете загружать с пользовательскими данными через JavaScript (вы все равно можете заполнить их «старым» способом для пользователей, которые не имеют автономной возможности в браузере). У вас будет хотя бы одна страница PHP, которая доставляет данные в ответ на запросы AJAX. Для этого подхода вам нужно узнать о Local Storage и различных JavaScript API для управления кешем и обнаружения офлайн-состояния . Как только пользователь решит установить автономную версию вашего веб-приложения, вы загрузите все данные этого пользователя и поместите их в локальное хранилище, а затем используйте эти данные для обновления каждой страницы при загрузке, когда пользователь находится в автономном режиме . Любые сделанные изменения должны быть синхронизированы с сервером, когда пользователь снова подключен.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...