Я начинающий программист JavaScript/jQuery, поэтому конкретные/исполняемые примеры будут очень оценены.
Мой проект требует использования AJAX для опроса URL-адреса, который возвращает JSON, содержащий либо контент, добавляемый в DOM, либо сообщение { "status" : "pending" }, что указывает на то, что бэкэнд все еще работает над генерацией ответа JSON с содержанием. Идея состоит в том, что первый запрос URL-адреса запускает бэкэнд для создания ответа JSON (который затем кэшируется), а последующие вызовы проверяют, готов ли этот JSON (в этом случае он предоставлен).
В моем script мне нужно опросить этот URL-адрес с 15-секундными интервалами до 1:30 минут и сделать следующее:
- Если запрос AJAX приводит к ошибке, завершите script.
 - Если запрос AJAX приводит к успеху, а содержимое JSON содержит { "status" : "pending" }, продолжите опрос.
 - Если запрос AJAX приводит к успеху, а содержимое JSON содержит полезный контент (т.е. любой действительный ответ, отличный от { "status" : "pending" }), затем отображать это содержимое, останавливать опрос и завершать script.
 
Я пробовал несколько подходов с ограниченным успехом, но я понимаю, что они все грязнее, чем им нужно. Здесь скелетная функция, которую я использовал с успехом, чтобы сделать один запрос AJAX за раз, что делает его работу, если я получаю полезный контент из ответа JSON:
// make the AJAX request
function ajax_request() {
  $.ajax({
    url: JSON_URL, // JSON_URL is a global variable
    dataType: 'json',
    error: function(xhr_data) {
      // terminate the script
    },
    success: function(xhr_data) {
      if (xhr_data.status == 'pending') {
        // continue polling
      } else {
        success(xhr_data);
      }
    },
    contentType: 'application/json'
  });
}
Однако эта функция в настоящий момент ничего не делает, пока не получит действительный ответ JSON, содержащий полезный контент.
Я не уверен, что делать в строках, которые являются просто комментариями. Я подозреваю, что другая функция должна обрабатывать опрос и вызывать ajax _ request() по мере необходимости, но я не знаю самого изящного способа для ajax _ request() передавать свои результаты обратно в функцию опроса, поэтому что он может ответить соответствующим образом.
Любая помощь очень ценится! Пожалуйста, дайте мне знать, если я могу предоставить дополнительную информацию. Спасибо!