我正在尝试创建某种加载条,使其在启动php时启用,并在php完成时停止。
我有一段php代码,它读取文件并将其过滤并使用sql上传到数据库:
if(isset($_POST['submit']))
{
echo "
<script>
Pace.start;
</script>";
$file = $target_file;
$fp = fopen($target_file,'r') or die ("can't open file");
for($i = 0, $line = count(file($file)); $i < $line; $i++)
{
$s = fgets($fp,1024);
$Geslacht = substr($s,0,1);
$Categorie = substr($s,1,1);
$Borstnr = ltrim(substr($s,2,4),'0');
$Naam = trim(substr($s,6,25));
$GeboorteJ = substr($s,31,2);
$GeboorteM = substr($s,33,2);
$GeboorteD= substr($s,35,2);
$Club = trim(substr($s,37,4));
$Provincie= substr($s,54,1);
$sql = "INSERT INTO atleten2K18 (Geslacht, Categorie, Borstnr, Naam, GeboorteJ, GeboorteM, GeboorteD, Club, Provincie ) VALUES
('$Geslacht', '$Categorie', '$Borstnr', '$Naam', '$GeboorteJ', '$GeboorteM', '$GeboorteD', '$Club', '$Provincie')";
$conn->query($sql);
}
echo "
<script>
Pace.stop;
</script>";
}
当我按下表单按钮“提交”时,这段代码开始。
大约24k行的子字符串需要一段时间,所以我很难使用JS加载栏。发现了一些PACE,NProgress等。在此示例中,我在文档中使用PACE的原因是sais Pace.start应该显示加载栏,而Pace.stop停止加载栏。我已通过以下示例对此进行了尝试:
if(isset($_POST['start']))
{
echo "
<script>
Pace.start;
Pace.options = {
ajax: false
}
</script>";
}
这很好用。但是上面我的代码的问题是,在for循环完成之前,它不会显示加载栏。 (我的强项是php代码阻止JS和HTML加载栏加载)
有人知道如何解决此问题吗?还是解决方法?