消息都需要服务器返回
我目前用的是thinkphp开发,前台用户发起一个请求,服务器处理了请求,返回一个A消息,然后服务器接着处理,然后返回B消息
我现在用的是
$this->ajaxReturn($info) 这个thinkphp自带方法,但是返回了以后,就无法执行接下去的操作,怎么破?
消息都需要服务器返回
我目前用的是thinkphp开发,前台用户发起一个请求,服务器处理了请求,返回一个A消息,然后服务器接着处理,然后返回B消息
我现在用的是
$this->ajaxReturn($info) 这个thinkphp自带方法,但是返回了以后,就无法执行接下去的操作,怎么破?
ajaxReturn
这个方法里用了exit
终止函数,所以不会执行后来的程序。
这个服务端好像无法做到,除非是前端一个请求对应返回一个结果,然后拿到这个结果再去请求。后端如果无法入手,就从前端入手吧。只要达到的目的是一样的,手段就无所谓了。
如果只是简单的应用的话, 可以用到 HTML5 的 EventSource,具体的细节看文档吧,我贴个demo代码
#JS代码
var evtSource = new EventSource("test.php");
evtSource.onmessage = function(e) {
console.log("message: " + e.data + "--" + e.type;)
};
evtSource.addEventListener("death", function (e) {
this.close();
});
#php端代码
header("Content-Type: text/event-stream\n\n");
$death = 5;
while (1) {
echo 'data: This is a message at time ' . $curDate . "\n\n";
$death--;
if($death == 0){
echo "event: death\n";
echo "data: end\n\n";
}
ob_flush();
flush();
sleep(1);
}
3 回答2.3k 阅读✓ 已解决
1 回答4k 阅读✓ 已解决
3 回答1.8k 阅读✓ 已解决
2 回答2.2k 阅读✓ 已解决
1 回答1.6k 阅读✓ 已解决
1 回答1.4k 阅读✓ 已解决
2 回答2.2k 阅读
这个因为 这次链接已经结束了 所以返回不了B 你可以做一个长链接
或者 每次间隔多久 去服务器请求一次数据