Отображение прогресса обработки данных в браузере
Я чайник в web-программировании, поэтому прошу больно не пинать. :-)
Выполняю на сервере довольно тяжеловесные обработки данных (скрипты написаны на PHP и запускаются со стороны браузера), в браузере необходимо каким либо образом отображать прогресс выполнения этой обработки.
Я так понимаю, что лучше всего использовать JavaScript и по таймеру получать прогресс другим php скриптом, но вот с какие вопросы не смог решить:
1. Процесс обработки должен быть всего один (как не допустить повторного запуска одного и того же процесса?)
2. Как запустить скрипт таким образом, чтобы он продолжил выполняться на сервере, но браузер "отпустило"
3. Каждый запуск скрипта, это, как я понимаю, полностью изолированная сессия, как из одной сессии получить данные о состоянии другой?
Пока на ум приходит только вариант с файлом, в который будет записываться информация о прогрессе выполнения, и оттуда же будет считываться по таймеру. Не слишком ли это кривой вариант? Опять же второй вопрос как решать пока не знаю, если запустить скрипт, браузер подвисает до тех пор пока он не выполнится... Может в PHP есть какой-нибудь аналог Fork?
P.S. В качестве WEB-сервера использую Apache
Заранее благодарю за ответы.
1. файл блокировки