Можете ли вы использовать локальное хранилище HTML5 для отправки содержимого формы «позже»? - PullRequest
1 голос
/ 21 октября 2011

Допустим, кто-то пишет ответ на интернет-форум на своем iPhone, когда теряет связь.

Можно ли использовать локальное хранилище HTML5, чтобы сохранить их отправку и опубликовать их, когда они получат соединение обратно?

Если так, как я могу узнать, есть ли у телефона соединение?

Ответы [ 3 ]

1 голос
/ 21 октября 2011

Да, вы можете реализовать свою собственную логику в приложении.Чтобы увидеть, доступно ли соединение, вы можете использовать флаг navigator.onLine (но, похоже, он не совсем надежен):

Реализует ли Safari и / или WebKit эквивалент window.navigator.online?

http://html5demos.com/offline

или попробуйте загрузить контент из Интернета и посмотреть, возможно ли это:

Проверка онлайн-статуса с iPhoneвеб-приложение

0 голосов
/ 21 октября 2011

Наилучшим подходом (с учетом того, что navigator.onLine ведет себя непоследовательно в разных браузерах) было бы сохранять то, что пользователь печатает в localStorage каждые несколько секунд или каждые несколько нажатий клавиш.

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

Вы также можете взглянуть на раздел «Переход в автономный режим с веб-хранилищем» этой статьи http://dev.opera.com/articles/view/taking-your-web-apps-offline-web-storage-appcache-websql/

0 голосов
/ 21 октября 2011

Не могли бы вы использовать JavaScript, чтобы установить переменную и сделать ее строкой с содержимым того, что пользователь помещает в коробку?Вы можете использовать getElementById или аналогичный для получения содержимого из формы.

Затем сохраните его в «cookie».Если вы не знаете, как это сделать, вот краткий обзор файлов cookie javascript с w3: http://www.w3schools.com/js/js_cookies.asp

Затем при загрузке страницы вы можете загрузить cookie и указать значение формыравно переменной, которую вы объявили ранее.

...