Javascript 在文件上循环“放置内容”;“无法打开流”;警告

Javascript 在文件上循环“放置内容”;“无法打开流”;警告,javascript,php,jquery,warnings,Javascript,Php,Jquery,Warnings,我有一个php脚本,需要一段时间,因此希望向AJAX侦听器报告我们的情况。。。因此,我的php有如下内容: <?php ... while (something == true) { // lots of loops and work here to do file_put_contents('progress-info.txt',$progress_info); } ... ?> 在我的javascript中,我将此信息读入一个

我有一个php脚本,需要一段时间,因此希望向AJAX侦听器报告我们的情况。。。因此,我的php有如下内容:

<?php
...
    while (something == true) {
        // lots of loops and work here to do
        file_put_contents('progress-info.txt',$progress_info);
    }
...
?>

在我的javascript中,我将此信息读入一个div:

<script type="application/javascript">
    ...
    setInterval(function () {
        //load data from file and display in element id="progress"
        $('#progress').load('/progress-info.txt');
        }, 1000); //every second
    ...
</script>

...
setInterval(函数(){
//从文件加载数据并显示在element id=“progress”中
$('#progress').load('/progress info.txt');
}, 1000); //每一秒
...
虽然这在大部分过程中都很有效,偶尔(10000个循环中可能有3到5次)我会收到“无法打开流:无效参数”警告。因此,这不是名称本身(或缺少斜杠)-我怀疑偶尔会发生访问冲突,因为在同一个文件上运行两个循环,一个向其写入,另一个(应该)仅从其读取。 这是因为jQuery加载函数在加载时锁定了文件吗? 如果是,我有什么选择来避免这种冲突? 我试图在php中保持文件的打开状态,然后在再次写入之前将其截断,但这会使文件中充满空值,并使其在每个循环中越来越长—我也不确定对此问题能做些什么。
非常感谢任何指点

对于遇到类似问题的其他人,我已经对文件设置了独占锁,可以通过一个标志来实现。显然,有几个子进程是使用“file\u put\u contents”执行的,异步javascript仅读取文件可能会产生干扰:

file_put_contents('progress-info.txt', $progress_bar, LOCK_EX);

添加LOCK_EX标志解决了在我的一些循环执行过程中产生的随机警告问题。

我怀疑db会更有效。我不确定,但是可能有一些锁函数(在某处…),类似于它们在
C++
中的工作方式。制作自己的锁功能可能有点复杂,考虑到PHP和jQuery是多么的不同…感谢指针-实际上有一个PHP的相似性:对于file_put_contents函数:LOCK_EX在继续编写时获取文件的独占锁-我在脚本中设置了这个,至少在一些测试运行中,我没有收到任何警告现在。@Dagon-是的,我曾想过通过db来实现这一点,但喜欢jquery.load函数的简单性-我对javascript不是很在行。。。