PHP и Jquery Ajax Пакетная обработка больших данных - PullRequest
0 голосов
/ 01 апреля 2020

Я пытаюсь выполнить пакетную обработку данных, используя jquery Ajax и PHP. Проблема в том, что у меня проблема с тайм-аутом из-за больших данных. Запрос никогда не завершается, и процесс умирает в середине.

Одним из способов может быть запуск ajax в течение определенного времени, а затем возврат доступного ответа в чанке, поскольку запрос не завершен в одном запросе. Итак, чтобы решить эту проблему, я попытался использовать setTimeout, чтобы ajax запускался несколько раз, но только в течение фиксированного промежутка времени. Тем не менее, я застрял в середине. Здесь проверил некоторые темы, но ничего не помогло.

    function UpdateStatus(){
    $.getJSON(
      "fetch.php",
      {
      },
      function (data, textStatus){
        setTimeout(UpdateStatus, 10000);
      }
    );
  }
  UpdateStatus();

Кто-нибудь может подсказать немного об этом?

Любая помощь будет более чем заметной.

1 Ответ

0 голосов
/ 01 апреля 2020

Я предполагаю, что ваш PHP скрипт получает тайм-аут. И этого нельзя избежать, запустив запрос AJAX несколько раз.

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

Конечно, вы должны пропустить уже обработанные данные в следующих запросах. Это может быть сделано путем предоставления вашим данным некоторого уникального идентификатора (возможно, первичного ключа записей вашей базы данных) и сортировки по этому идентификатору. Последующий запрос должен знать последний обработанный идентификатор и начинаться со следующего набора данных после этого.

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