使用无限while循环动态更改值是不好的做法吗?
Posted
技术标签:
【中文标题】使用无限while循环动态更改值是不好的做法吗?【英文标题】:Is it bad practice to dynamically change a value with an infinite while loop? 【发布时间】:2014-02-23 13:11:37 【问题描述】:我想要一段已经每 10 分钟动态变化的文本,以便在不刷新页面的情况下执行此操作。我的想法是这样的:
<?php
while (1 < 2)
echo $value;
sleep(60);
?>
我意识到这是一种让 while 循环运行的愚蠢方法,我认为它只适用于“while()”,但我只是想确保,当我实际编写这个东西时,这将得到纠正只要这并不可怕。如果有更好的方法我很想听!谢谢!
编辑:我只是注意到它会在第一个之后回显该值,是否有任何切割方法可以使其替换它?
Edit2 这是我已经编写的用于检索变化值的 php 函数:
<?php
function getTotal($basePrice)
$dogeValue = file_get_contents("https://www.dogeapi.com/wow/?a=get_current_price");
$postage = .49/$dogeValue;
return round($sellAmount = $basePrice/$dogeValue - $postage - ($basePrice*0.1/$dogeValue));
?>
【问题讨论】:
不是你可以用客户端javascript做的吗? 我可能会考虑为此使用 cron 作业。 为什么要这样做而不是每 10 分钟运行一次 cron? 这将继续添加到文本中。而且我认为您的<html>
标签永远不会关闭...
为什么 1
【参考方案1】:
简短的回答:是的,这是不好的做法。
原因包括:
-
您占用了服务器(可能会超时)
除非您使用缓冲,否则不会在您想要的时间反映内容
您永远不会将关闭标记发送到浏览器(或以后发生的任何其他事情)。
覆盖已经存在的内容很棘手,因此最终会导致输出增加而不是更改。
推荐:
使用客户端代码(javascript、AJAX) - 不要尝试在服务器端执行此操作。
您可以在https://***.com/a/6378771/1967396 看到周期性 AJAX 的示例。
对于定期 JavaScript,请在 Is there any way to call a function periodically in JavaScript? 上查看许多好的答案
【讨论】:
【参考方案2】:此脚本从不向您显示任何内容,因为在未完成处理 php 脚本之前,考虑到您的无限循环,Web 服务器不会发送 anything 输出,它永远不会发生。
用Ajax,cron jobs,甚至纯粹的javascript,代替这种行不通的想法,当然很简单也更合理.
【讨论】:
不完全正确。一些网络服务器将输出“on the go”它依赖于是否有缓存 我说的是常用的 Web 服务器,如 apache 或 nginx 使用 apache 我能够随时随地输出我在 pass 中使用了该方法,因为 cron 作业不是一个选项,并且页面必须能够快速加载所以需要时间的部分运行毕竟是 html 的输出以上是关于使用无限while循环动态更改值是不好的做法吗?的主要内容,如果未能解决你的问题,请参考以下文章
arr[0] = arr[1] = C 中的值是不好的做法吗?