无论如何从服务器端(PHP)运行/触发/调用javascript(客户端)?
我可以运行javascript,如果我从浏览器调用它(当然,因为它是客户端),但不是来自服务器端/邮递员(我想知道是否有?)
function validate_answer($p) {
?>
<script>
$.ajax({ url: '/validate_time.php',
data: {'action': 'test'},
type: 'post',
timeout:5000
});
</script>
<?php
}
我想用这种方式的原因,因为在PHP中,没有像javascript那样的setTimeout这样的函数。
谢谢你们
修改
好的,这就是事情。 我正在创建一个超时的游戏,每当游戏开始时,它将有一个时间限制(例如10分钟)。我需要一个功能来做到这一点,不幸的是,它无法通过浏览器访问(它就像一个Web服务)。我尝试过睡觉,但这不是我想要的。
答案 0 :(得分:1)
您无法在服务器端运行javascript。如果您希望在不占用主脚本的情况下获得超时效果,可以使用如下参数调用URL:
function validate_answer($p) {
$ms_delay = 5000;
file_get_contents('http://www.yoursite.com/validate_time.php?action=test&delay='.$ms_delay)
}
然后在文件开头的validate_time.php中执行以下操作:
sleep($_GET['delay'] / 1000)
虽然不是很优雅。
答案 1 :(得分:1)
PHP是单线程的,通常PHP专注于HTTP请求周期,因此在请求完成后,允许超时运行代码是很棘手的。
我建议你研究Gearman作为将工作委托给其他PHP进程的解决方案。