在一个php页面上显示在另一个php页面上运行的进程的进度

Display progress on one php page for a process running on another php page

本文关键字:php 进程 运行 另一个 显示 一个      更新时间:2023-09-26

我有一个upload.php页面,用户上传一个文件,该文件被转换为HTML文件并存储在服务器上。转换是通过shell_exec()命令执行的。为了显示转换进度条,我解析标准错误并将进度值传递给javascript函数,如下所示:

echo "<script>progress(".$base.",".$prog_val.") </script>";

调用javascript函数:

       function progress(base, value) //assigns value and max to progress bar in html
     { 
document.getElementById('prog').value = value;
 document.getElementById('prog').max = base; document.getElementById('progress_indicator').innerHTML = Math.ceil(value)+"/"+base+" pages";
 }

要显示进度条,我有:

<progress id = "prog"> </progress> <div id = "progress_indicator"></div>

所有这些都在同一个upload.php页面上。因此,当进程运行时,进度成功更新,但用户无法使用该页,因为转换在同一php页面上执行。我想在后台的另一个php页面上运行转换php部分,并返回"进度"("。$base.","。$prog_val.")"在我的upload.php页面上。因此,转换在后台运行,而不会在此期间阻止upload.php页面。我觉得这可以通过ajax或事件处理程序来实现。

谁能让我知道这是如何实现的?

使jquery ajax在upload.php页面与外部页面有您的操作,然后分配ajax的返回值到固定的div在upload.php页面