Обмен сообщениями от CGI - PullRequest
0 голосов
/ 09 мая 2011

Я запрограммировал приложение CGI, написанное на C, которое загружает внешние данные и вставляет их в базу данных MySQL. Это сделано и работает, и я могу вызвать его прямо из папки CGI-BIN.

Теперь я хочу, чтобы пользователь мог нажать кнопку обновления, которая, в свою очередь, загружает скрипт CGI, а затем показывает индикатор загрузки. Я думал об использовании Javascript для загрузки скрипта PHP, который затем загружает CGI-APP. Пока CGI работает, пользователь должен видеть индикатор загрузки.

Как теперь я могу сообщить основному PHP, что все сработало, если я вызываю скрипт косвенно с XMLHttpRequest, как я?

mainapp.php> Javascript XMLHttpRequest> loader.php> CGI-приложение

Как информация из приложения CGI, которое все работало, возвращается в mainapp.php для перезагрузки?

РЕДАКТИРОВАТЬ: я забыл упомянуть. Я использую JS для плавного перехода, чтобы пользователь не «чувствовал», что другая страница была загружена.

1 Ответ

0 голосов
/ 09 мая 2011

На стороне сервера, CGI-скрипт может публиковать свой прогресс при запуске. Это может быть записано в файл, однозначно идентифицированный для этого вызова. Когда процесс начнется, JavaScript будет рассказан об этом уникальном идентификаторе.

(файл может просто содержать 0-100 в зависимости от прогресса.)

Затем вы можете опросить содержимое этого файла (т.е. http://site/services/status/uniqueid) через заданный интервал времени, используя XHR и соответственно обновить свой пользовательский интерфейс.

...