gpt4 book ai didi

javascript - 循环 file_put_contents 偶尔会触发 "failed to open stream"警告

转载 作者:行者123 更新时间:2023-11-28 08:06:38 24 4
gpt4 key购买 nike

我有一个 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>

虽然这对于大部分进度来说效果很好,偶尔(在 10,000 个循环中可能有 3 到 5 次)我收到“无法打开流:无效参数”警告。所以这不是名称本身(或缺少斜杠) - 我宁愿怀疑偶尔的访问冲突,因为两个循环在同一个文件上运行,一个循环写入它,另一个(应该)仅从中读取。这是因为 jQuery 加载函数在加载时锁定了文件吗?如果是这样,我有哪些选择可以避免这种冲突?我尝试在 php 中保持文件打开状态,然后在再次写入之前 chop 它,但这会用 NULL 填充它,并使其在每个循环中变得越来越长 - 也不知道我能对这个问题做什么。非常感谢任何指点!

最佳答案

对于遇到类似问题的其他人 - 我已在文件上放置了独占锁,这可以通过标志来完成。显然,有几个使用“file_put_contents”执行的子进程,并且仅读取文件的异步 JavaScript 可能会干扰:

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

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

关于javascript - 循环 file_put_contents 偶尔会触发 "failed to open stream"警告,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24728068/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com