【发布时间】:2011-05-29 09:21:55
【问题描述】:
是否所有彗星风格的应用程序都需要在服务器端的应用程序某处使用循环来检测更新/更改?如果不是,请您解释一下无环彗星式应用程序背后的逻辑是如何工作的?
【问题讨论】:
标签: php javascript asp.net jquery sql
是否所有彗星风格的应用程序都需要在服务器端的应用程序某处使用循环来检测更新/更改?如果不是,请您解释一下无环彗星式应用程序背后的逻辑是如何工作的?
【问题讨论】:
标签: php javascript asp.net jquery sql
这种应用程序总是需要一个循环,你需要定期检查新数据等。当然你可以使用基于偶数循环的方法使“循环”非阻塞,但最终还是有某处的循环。
想一想,如果没有循环,您将如何使其工作?我确实无法想象一种不使用循环的方式somewhere。
【讨论】:
简短的回答是,不,并非所有都需要服务器端的循环。
相反,您可以使用来自浏览器的长轮询 AJAX 调用来请求数据,
服务器只是简单地用数据进行响应,浏览器会等到收到响应后再发送新的请求。
【讨论】:
解决方案可能是 stream_set_blocking。使用任何可能的阻塞资源被操作系统挂起并等待适当的中断。
客户端:
服务器设置:
脚本一:
最糟糕的是,您需要考虑如何让多个阅读器脚本从同一总线(文件)读取而不会相互干扰。 也可能会在将消息写入总线的时候发生超时。
(希望这个解决方案没有我的英文那么差)
【讨论】: