Вместо записи в статический файл, который вы выбираете с помощью AJAX, или в дополнительное поле базы данных, почему бы не использовать другой сценарий PHP, который просто возвращает процент выполнения для указанной задачи. Затем ваша страница может обновить ход выполнения с помощью очень легкого AJAX-запроса к указанному PHP-скрипту.
Что касается реализации этого сценария «прогресса», я мог бы предложить больше советов, если бы у меня было больше понимания того, что вы подразумеваете под «обрабатывает много данных». Если вы пишете в файл, ваш сценарий прогресса может просто проверить размер файла и вернуть процент завершения. Для более сложных задач вы можете назначить тесты определенным процессам и вернуть приблизительный процент выполнения, основанный на том, какой процесс завершился последним или выполняется в данный момент.
UPDATE
Это один из предложенных способов «проверить ход» активного сценария, который просто ожидает ответа на запрос. У меня есть приложение для анализа данных, для которого я использую аналогичный метод.
В вашем скрипте, который делает ожидаемый запрос (скрипт, который вы хотите проверить ход выполнения), вы можете сохранить (либо в файле, либо в базе данных, я использую базу данных, так как у меня запущены сотни процессов). в любое время, когда всем необходимо отслеживать их продвижение, и у меня есть другой сценарий, который позволяет мне отслеживать продвижение этих процессов) переменная прогресса для процесса. Когда процесс начнется, установите для него значение 1. Вы можете легко выбрать произвольное количество «контрольных точек», которые пройдёт сценарий, и рассчитать процентное значение с учетом текущей контрольной точки. Однако для большого запроса вам может быть интереснее узнать приблизительный процент выполнения запроса. Одним из возможных решений было бы узнать размер возвращаемого контента и установить переменную вашего статуса в соответствии с процентом, полученным в любой момент. То есть Если вы получаете данные запроса в цикле, на каждой итерации вы можете обновлять статус. Или, если вы загружаете в плоский файл, вы можете опросить размер файла. Это может быть сделано менее точно с течением времени (а не размером файла), если вы знаете приблизительное время, необходимое для выполнения запроса, и просто сравниваете его с текущим временем выполнения скрипта. Очевидно, что ни одно из этих решений не является идеальным, но я надеюсь, что они дадут вам некоторое представление о ваших возможностях.