假设有两个PHP函数。
function first()
{
$keyword = $this->input->post('keyword');
//search for the result and show it to users.
$this->search->search($keyword);
//send the keyword to save it into the db.
$this->second($keyword);
}
function second($keyword)
{
//saving a search keyword in the db
}
我想尽快发送结果并将搜索词保存到DB中。
但是,我想在特定时间之后运行第二个脚本。
因为我想尽快将搜索结果发送给我的客户。
有没有办法在用户运行第一个PHP脚本后运行第二个PHP脚本?
* I don't want to use Cron Job
* I wanna run those two script separatly.
* don't want to use sleep because it will stop the first script for certain times.
答案 0 :(得分:3)
你需要将它回传到你的服务器,但是这种异步的php方法运行得非常好(我已经使用它大约一年了,几乎完全按你所做的那样)。
答案 1 :(得分:1)
不是像Bob Davies所建议的那样从PHP发出Web请求,而是在页面显示后从html页面发起一个新的HTTP请求。
例如:
当您不希望最终用户必须等待您的指标内容时,类似的方法用于执行客户端跟踪。一些要点:
答案 2 :(得分:0)
如果你只想使用PHP,据我所知,你可以使用sleep()
,但它会延迟代码的执行。
我认为推迟工作的最简单方法是使用AJAX。只需将第二个函数放在另一个PHP文档中,然后调用XMLHTTPRequest()
或$.ajax
(如果你想使用jQuery),并将代码延迟几秒钟。您可以使用setInterval()
或delay()
(jQuery)执行此操作。
简单写一下
delay(2000).function(){
//saving a search keyword in the db
}
请记住,在这里你应该使用AJAX而不是PHP代码。