Мобильные сборщики данных PHP - PullRequest
2 голосов
/ 22 августа 2011

Я работаю в портовой компании, которая разрабатывает программное обеспечение для управления портовыми операциями.В настоящее время я занимаюсь разработкой проекта для сборщиков данных.

Сборщик данных - это портативное устройство, используемое для сбора информации, которое затем будет использоваться в конкретной системе, для управления запасами, контроля потребления, отчетности в целом.

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

До этого у меня вообще не было никаких проблем, но так как двор порта является местом, подверженнымбольшой коэффициент помех, может произойти потеря сигнала, так как приложение для работы должно иметь Wi-Fi соединение.Когда он теряет связь с php-сервером, приложение перестает работать.

Мы думали об установке сервера apache на каждом сборщике, но понимаем, что это невозможно.

Поэтому я пришел спроситьВы предложите мне сохранить данные, введенные пользователями, в случае возможной потери сигнала.

1 Ответ

1 голос
/ 29 августа 2012

Я предполагаю, что вы по крайней мере имеете некоторый контроль над клиентскими устройствами и поэтому можете быть уверены, что они используют современный браузер.Поэтому вы можете использовать хранилище данных HTML5 (объект localStorage в Javascript) для записи данных на клиентское устройство.Когда они нажимают кнопки, заполняют формы или что-то еще, вместо загрузки данных на сервер, записывают их в локальное хранилище, используя Javascript.Когда вы это сделаете, посмотрите, можете ли вы загрузить содержимое локального хранилища на сервер (используя Ajax).Если вы можете, отлично, удалите его из локального хранилища;если не оставить его там для следующей попытки.

Вам понадобится добавить кнопку, чтобы сбросить все оставшиеся данные, я думаю, и обучить их использовать их по возвращении на базу, иначе данные останутся не загруженными,И этой кнопке, может быть, всему интерфейсу, потребуется указание на успех и, возможно, сколько еще не было загружено.Или, может быть, страница сбора данных периодически пытается загрузить какие-либо выдающиеся данные.Проблема с этим возникает, если они (пытаются) перейти на какую-то другую страницу с невыполненной загрузкой данных - вы можете в некоторой степени предупредить их, оставив страницу javascript, которая может сообщить им «невыполненная загрузка данных».Поскольку хранилище является постоянным, можно даже закрыть браузер или выключить устройство и повторно открыть страницу сбора данных позже, когда в пределах досягаемости для завершения загрузки - главная проблема заключается в том, что человеческий фактор обеспечивает выполнение этого на самом деле..

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

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

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