<?php
echo '<style> #myProgress {
width: 100%;
background-color: grey;
}
#myBar {
width: 1%;
height: 30px;
background-color: green;
} </style>';
echo '<div id="myProgress">
<div id="myBar">1%</div>
</div>';
echo'<script src="jquery-3.2.1.min.js"></script>';
echo '<script type="text/javascript">
function move() {
$.getJSON("convo.php",function(data){});
var elem = document.getElementById("myBar");
var width = 1;
var id = setInterval(frame, 10);
function frame() {
$.getJSON("progress.php",function(results){
width=results;
if (width > 100) {
clearInterval(id);
}
else if(width==100)
{
elem.style.width = width + "%";
elem.innerHTML = width * 1 + "%";
}
else
{
width++;
elem.style.width = width + "%";
elem.innerHTML = width * 1 + "%";
}
});
}
}
</script>';
ob_flush();
flush();
echo '<br>
<button onclick="move()">Click Me</button>'
?>
/**** progress.php ***/
<?php
$content = @file_get_contents('logs/123.txt');
if($content){
exit(json_encode($progress));
}
/**** convo.php ***/
will generate logs/123.txt file
Могу ли я узнать, есть ли для меня возможность прочитать текстовый файл и обновить индикатор выполнения с помощью ajax, пока другая функция работает и обновляет этот текстовый файл?
Но индикатор выполнения должен обновляться в реальном времени, не дожидаясь завершения процесса обновления txt-файла.
Я уже пытался сделать это, но проблема в том, что codeigniter продолжает запускать первый процесс (процесс обновления файла .txt), хотя я вызываю 2-ю функцию (updateProgressBar), используя ajax, в то время как 1-й процесс работает, он продолжает загружаться без возврата данных пока не закончится 1-й процесс. но когда 1-й процесс закончен, он возвращает данные, которые бесполезны.
Могу ли я знать, почему codeigniter не позволяет мне запускать 2 функции одновременно?
Заранее спасибо