[英]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.