Хорошо, я пытался найти способ решить мою проблему, и я подхожу с пустыми руками.У меня есть вызов AJAX , который действительно работает (я вижу, что строки добавляются в базу данных mySQL), однако вызов ajax истекает из того, что я собираю, так как через 60 секунд я вижу это в консоли:
Error: Gateway 504 timeout.
Даже по истечении времени ожидания я вижу, что php-скрипт действительно работает в фоновом режиме и все еще добавляет строки в базу данных.
Я пытался увеличить время ожидания и set_time_limit(0)
в своем коде, но все равно не повезло.Я думаю, исходя из своей находчивости, мне нужно прибегнуть к длинному опросу .Вот мой модифицированный javascript, пытающийся реализовать длинный опрос;
$("#scan_library_submit").on('click', function(e){
var media_dir = $("#media_dir").val();
var media_ext = document.forms['scan_library_form'].elements[ 'media_ext[]' ];
if( media_dir =='' || media_ext == '' )
{
document.getElementById("scan_library_response").innerHTML = '<font color="red"><i class="fas fa-times"></i> All Fields Required.</font>';
return
}
this.innerHTML = '<i class="fa fa-spinner fa-spin"></i> Scanning...';
//ajax call to scan library
(function scan_media_library(){
setTimeout(function(){
$.ajax({
url: 'ajax/library_scan.php',
type : "POST",
dataType : 'json',
data : $('#scan_library_form').serialize(),
success : function(result) {
if(result.code === 404){
document.getElementById("scan_library_response").innerHTML = result.msg;
return;
}else if(result.code === 200) {
document.getElementById("scan_library_response").innerHTML = result.msg;
document.getElementById("scan_library_submit").innerHTML='<i class="fas fa-check"></i> Complete!';
setInterval('window.location.reload()', 9000);
return;
}else{
scan_media_library();
}}
})
}, 3000);
})();
});
Я все еще получаю шлюз ошибок 504 ...: (*
также, немного в стороне в этом вопросе.Я хотел бы обновить <span>
по мере выполнения сценария, в основном этот сценарий добавляет данные в таблицу mysql, чтобы он мог периодически проверять таблицу на предмет количества строк. Возможно ли это реализовать? Если это так ...Как? Ссылки на соответствующие учебные пособия приветствуются, для меня это опыт обучения! Когда выполняется запрос AJAX, он может проверять таблицу каждые 3-5 секунд, чтобы увидеть, сколько строк добавлено, а затем обновить <span>
с результатом..