【问题标题】:Refresh page after the background script is done后台脚本完成后刷新页面
【发布时间】:2012-10-20 21:16:36
【问题描述】:

我正在使用 ob_ 做一些后台处理

$buffer = ob_get_contents();
header("Connection: close");
ignore_user_abort(true);
ob_start();
echo $buffer;
$size=ob_get_length();
header("Content-Length: $size");
ob_end_flush();
flush();
ob_end_clean();
file_get_contents($uri.'?loadchanges=1');

脚本运行良好,但我需要在之后刷新页面

  file_get_contents($uri.'?loadchanges=1');

我试过了

header( "refresh:0;" );

之后或之前

echo $buffer;

但它刷新了两次,我确定我不需要它,后台进程完成后我需要它。

感谢任何帮助

【问题讨论】:

  • 这对我来说看起来非常 hacky。你能解释一下你想要做什么吗?我几乎可以肯定,对于您正在寻找的东西,有更好的选择
  • 我正在重新编译 LESS/CSS 文件,如果它们已被更改,它工作正常,只需要在处理完成后刷新

标签: php http-headers ob-start


【解决方案1】:

我不确定你想做什么,但使用 Refresh:0 会导致继续循环,你需要寻找一种方法来确保它不会多次刷新,同时在调用 header 之前调用 flushob_flush不是个好主意;

试试

error_reporting(E_ALL);           //<-- Add to catch posible errors
ini_set("display_errors", "on");  //<------------^


if (!isset($_GET['refreshed'])) {
    header("Refresh: 0; URL=\"samplepage.php?refreshed=ok\"");
}

【讨论】:

    猜你喜欢
    • 2013-12-12
    • 2019-04-21
    • 1970-01-01
    • 2013-12-25
    • 2023-03-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-11-07
    相关资源
    最近更新 更多