繁体   English   中英

Chrome在执行PHP脚本期间停止读取JSON文件

[英]Chrome stops reading JSON file during PHP script execution

我需要为长时间运行的PHP脚本创建progressbar,因此我决定将脚本进度写入json文件,然后通过Javascript读取。 在Firefox中一切正常,但是如果我将浏览器更改为Chrome,它将停止工作。 控制台窗口中没有错误。 当用户启动PHP脚本时,Chrome只是停止加载json文件,但确实会在PHP执行开始之前读取此文件。 我的代码或Chrome浏览器的正常行为是否有问题?

PHP:

$fp = fopen($this->writeFile, "w");
fwrite($fp, json_encode($values));
fclose($fp);

//for safety we will make a copy and let client access the copy.
copy($this->writeFile, $this->readFile);

使用Javascript:

getProgress();
function getProgress() {
    $.ajaxSetup({ cache: false });
    $.getJSON("../../../../upload/status.json", function(data) {
    var pbvalue = 0;
    if(data){
        var total = data['total'];
        var current = data['current'];
        if(total != 0)
            pbvalue = Math.floor((current / total) * 100);
        $(".progress-bar .indicator").width(pbvalue+"%");
        $(".progress-text").text(current+"/"+total);
    }
    if(pbvalue < 99)
        setTimeout("getProgress()", 3000);
});
}

JSON文件:

{"total":"0","current":"0"}

编辑1:感谢您的超时提示,但在Firefox中工作正常(好),问题出在Chrome控制台内没有“ XHR完成加载”响应之后,我开始执行PHP(之前按预期的方式每3秒钟加载一次文件)

编辑2:可能此问题的原因是我尝试在用户提交表单后读取此JSON文件。 我猜出于某些原因,提交表单后,Chrome浏览器不再允许执行jQuery $ getJSON函数。 任何解决方法将不胜感激。

我什至尝试制作Flash动画来读取json文件,但是它也没有起作用(看起来像在提交Chrome后停止更新当前显示的页面)。 对我而言,唯一可行的解​​决方案是重新设计代码并通过ajax调用而不是传统的表单提交来执行PHP函数。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM