Проверка наличия файла в директории с помощью jQuery в приложении Flask

155
13 апреля 2019, 14:20

Есть приложение Flask. В части Python происходит обработка файла .wav по кускам. На каждый кусок создается txt файл с текстом. К этой функции идет роутинг @app.route("/", methods=['POST']) и ajax-запрос. Задача сделать с помощью jQuery динамическое обновление общего результата на странице html, т.е. надо, чтобы результаты по каждому из кусков, по мере появления, добавлялись в блок на странице. Пыталась это реализовать с помощью вот такого кода (см. ниже), используя параллельные ajax-запросы, но работа цикла, почему-то, происходит не так, как должна бы. И вообще есть зацикливание. И флаг не обновляется по завершению основного ajax-запроса.

Код:

var k; 
 
function python_script_work(file){ 
  var flag = true; 
  var downloadLink = blobUri +"/"+ container +"/"+ file; 
  var t1 = (new Date()).getTime(); 
  $.ajax({ 
    url: '/', 
    data: {"file": downloadLink}, 
    type: 'POST', 
    success: function(response) { 
      result_text = response; 
      var t2 = (new Date()).getTime(); 
      delta = t2-t1; 
      flag = false; 
      console.log("Флаг стал " + flag); 
      show_display_of_result(file, result_text, delta); 
      // return response; 
    }, 
    error: function(error) { 
      console.log(error); 
      result_text = 'Увы, распознавание текста не удалось :('; 
      show_display_of_result(file, result_text); 
      // return 'Увы, распознавание текста не удалось :('; 
    } 
  }); 
  console.log("Идем параллельно с ajax"); 
  var file_path = "static/load_files/text/"+file.split('.')[0]+"_Result"; 
  // console.log(file_path); 
  k = 1; 
  while (flag){ 
    console.log(k); 
    console.log("Флаг = " + flag); 
    console.log("Проверяем маленький файл под номером " + k); 
    // tmp_flag = midtermResultExists(file_path + "_" + k + ".txt", k); 
    $.ajax({ 
      url: file_path + "_" + k + ".txt", 
      success: function() { 
        console.log("Mini-File exists"); 
        jQuery.get(file_path + "_" + k + ".txt", function(data) { 
          console.log(data); 
        }); 
        k = k+1; 
        return true; 
      }, 
      error: function() { 
        console.log("Mini-File doesn't exist"); 
        return false; 
      } 
    }); 
    console.log("Проверка файла " + file_path + "_" + k + ".txt"); 
  }; 
  return; 
};

В результате получается вот такое зацикливание

READ ALSO
Ajax. Как получить идентификатор?

Ajax. Как получить идентификатор?

Подскажите как добавить в код id, я так понимаю дело в нём, потому что редактирование происходит только после перезагрузки страницыСпасибо)

140
Мобильное приложение для iOS и Android

Мобильное приложение для iOS и Android

Нужно сделать приложение такого типа:

182
Прогресс бар скачивания файла

Прогресс бар скачивания файла

Есть код >>тут<<, как добавить туда ссылку типо: <a href="dlmydomain

132