Вопрос немного не понятен.
* Если задача в php скрипте как то отличить обычную загрузку страницы от запроса, то к запросу нужно добавить параметры, это нормальный способ, специально для этого созданный. Параметры могут быть добавлены напрямую в ссылку, это формат запроса http get (используется по умолчанию) или как дополнительные поля запроса http post, в любом случае метод
ajax jquery все делает автоматически и достаточно указать данные в settings в виде массива key->value в параметре data
* Если проблема в том что запрос выполняется параллельно загрузки данных браузером и может быть прерван принудительно браузером или при проблемах с соединением, то типичный способ - запускать свои задачи отдельным приложением (сервисом), с которым веб приложение (то что внутри index.php) должно как то общаться (обычно используют тот же http протокол но это не обязательно, например один из способов -
оставить в базе данных задачу, список которых и будет мониторить это приложение). Способов тьма, написано куча решений, особенно когда речь идет о высоконагруженных задачах, но настоятельно рекомендуется решить подобную задачу самостоятельно, благо там нет ничего сложного.
В данном решении должно появиться понятие задачи, у которой есть статусы новая, исполняется, завершена, ошибка,... а на стороне клиента это соответственно должно обрабатываться.
Чтобы клиентская сторона оперативно могла получить информацию об окончании запущенной задачи, вместо периодических опросов по таймеру (которые сильно нагружают веб сервер с примерно квадратичной трудоемкостью от количества клиентов) рекомендуется использовать websocket, на стороне сервера должно быть запущено соответствующее приложение (либо отдельное либо сам бакэнд должен быть реализован в виде этого веб сервера) которое будет мониторить состояние задач и рассылать сообщения об их изменении клиентам.