首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在php中使用延迟回显/打印内容到页面

在php中使用延迟回显/打印内容到页面
EN

Stack Overflow用户
提问于 2016-02-01 23:21:09
回答 1查看 98关注 0票数 0

我想做一个页面,将显示一些进程执行后的一些结果。每个过程可能需要2-10秒。因此,我不想等待所有过程都完成,而是希望在完成后打印每个过程的结果。

例如:

代码语言:javascript
运行
复制
<?php

echo "1";

sleep(5); // some process that will execute 5 seconds

echo "2"

sleep(8); // some process that will execute 8 seconds

echo "3"

sleep(5); // some process that will execute 5 seconds

?>

因此,在浏览器中打开此PHP文件时,打印"1“,5秒后打印"2”,然后继续。我如何在PHP中做到这一点呢?一种方法是将这些文件转换为单独的PHP文件,然后使用ajax加载每个文件。但是我不想把它分成不同的文件。

EN

回答 1

Stack Overflow用户

发布于 2016-02-01 23:38:15

使用操作来分隔脚本的不同部分。这样你就不需要分成不同的脚本。

代码语言:javascript
运行
复制
$action = empty($_REQUEST['action']) ? null : $_REQUEST['action'];
switch($action){
    case 1:
        // do stuff
        break;
    case 2:
        // do stuff
        break;
    case 3:
        // do stuff
        break;
    case 4:
        // do stuff
        break; 
    default:
        echo "you fucked up";   
}

然后使用ajax,如下所示

代码语言:javascript
运行
复制
function doAjax(action){
  if('undefined' == typeof(action)) action = 1;
  var xhttp = new XMLHttpRequest();
  xhttp.onreadystatechange = function() {
    if (xhttp.readyState == 4 && xhttp.status == 200) {
      document.getElementById("results").innerHTML = xhttp.responseText;
      action++;
      if(action<4) doAjax(action);
    }
  };
  xhttp.open("GET", "myPHPScript.php?action="+encodeURIComponent(action), true);
  xhttp.send();
}
doAjax();
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35134099

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档