我正在 php 中进行一些繁重的图像处理,我想向用户展示事情的进展情况。所以我尝试做这样的事情:
for($i = 0; $i < $rowCount; $i++) {
session_start();
$_SESSION['progress'] = $i/ $rowCount;
session_write_close();
processLine($i);
}
然后我使用 AJAX 调用另一个 php 文件,该文件基本上返回 $_SESSION['progress'] 的值。问题是,它没有设置。这是因为您不应该在每个文件中多次启动会话吗?如果我只是打开会话而不在每一行之间关闭它,则 SESSION 变量将被锁定,并且在完成整个图像操作之前不会处理我的轮询文件。
有什么方法可以使用会话使其工作?我认为如果我将进度放入数据库或文件中可能会起作用,但这很慢,我们必须做一些工作来识别用户(使用 ips 或会话 ID)。使用会话将处理这些事情。