每次for循环迭代时都无法在php中回显?

时间:2015-01-20 14:00:04

标签: php jquery ajax

所以我有一个PHP脚本process.php,它基本上按名称或IP或一系列IP ping单个主机。知识产权通过form.php传递,我很高兴地报告它运作良好。

我想要实现的目标如下:

1. Output to the form each IP as it is pinged, currently the script completes before it outputs. This isn't an issue for the single IP or hostname but for the IP range it leaves the user hanging.

我的问题是,我可以使用JQuery / Ajax保持PHP和process.php中的逻辑,还是需要将逻辑移到JQuery / Ajax中的form.php?

我知道我还没有包含实际的代码,但我只需要检查逻辑。

for ($ip=$formipstart;$ip<=formipend;$ip++) {
  echo "$ip";
}

2 个答案:

答案 0 :(得分:0)

您可以保留原样,但我会将您的逻辑移动到网页中,特别是如果您熟悉jQuery和AJAX。对我来说,向访问者展示在背景中发生的事情总是更好,无论是2秒钟还是2分钟,都可以在某处显示叠加和旋转器。它总是看起来更好,它可以节省您的托管资源。例如,您可以将ping-check限制为每秒1次,或者您可以随时停止ping,这是PHP无法实现的。

答案 1 :(得分:0)

所以我的问题是关于我应该把逻辑用于实现每个请求的ping响应的一般情况。我的第一次尝试是一个发布到process.php页面的简单表单。所有逻辑都包含在process.php中。 ping工具工作得很好,但有一件事。当它们发生时,我无法ping输出。它只会在处理完整个逻辑/页面后输出结果。输出是正确的,但确实让用户不知所措。

创建这篇文章后,我的第二次尝试将逻辑移到了form.php页面,并在jquery和php的混合中重写。 form.php调用了process.php,它已被简化为实际的ping和结果。使用jquery和ajax,我能够在发生时显示每个ping响应。

在阅读了更多帖子之后,看起来似乎如果逻辑被保存在process.php中作为纯PHP,我将不得不等到页面完成处理。我还没看到证据显示我。现在,最终用户可以看到如此多的逻辑/代码,这也是一种痛苦。