2009-04-26 100 views
3

我正在一个项目上工作,我经常ping一个新的数据的php脚本,所以如果我正确地理解这一点,这意味着被脚本化的php脚本会无限期地被反复运行。它的工作原理,但我猜测它在服务器上的巨大压力,可能被认为是丑陋的坏习惯。我对吗?保持与PHP的生活连接?

是否有任何方法可以保持与脚本的连接活着,并利用内置的PHP输出缓冲来刷新我需要的内容,但保持脚本运行无穷大使用某种循环,所以当新数据是可用它可以输出。这是不是一个好主意?

我只是寻找有更多经验的输入表单开发人员。

最后一件事...

还有没有其他的方法来保持数据去(不包括技术如Flash或Silverlight)的恒定流量?

回答

4

如果您对当前应用中可能预期的加载类型进行测试时目前工作正常并继续工作,那么这并不是一种坏习惯。如果工作简单,保持简单并不是犯罪。任何你所描述的都会违背网络原始模型的谷物,所以你冒险进入摇摇欲坠的领域。

我建议您查看Comet技术。它最受欢迎的是与你想要的相反 - 服务器将信息连续推入页面 - 但它显然可以同时工作。虽然你的里程可能会有所不同,但我听到了很多好消息维基百科这样描述的:

Web开发,彗星是一个新词来描述Web应用程序模型,其中一个长期持有的HTTP请求允许web服务器将数据推到浏览器,而浏览器明确要求它。彗星是实现这种相互作用的多种技术的总称。所有这些方法都依赖于浏览器中默认包含的功能,例如Javascript,而不是非默认插件。

0

它几乎看起来像PHP不会是这种语言的最佳选择。可能考虑像scala或erlang这样的设置来更好地处理这种类型的长时间消息。

+0

我同意但我为挑战。 – 2009-04-26 20:12:46

0

我想说的是依赖。如果你想让数据传输由客户端启动,那么你最好的选择就是使用一些Ajax(比如getxmlhttpobject或者如果你觉得自己是作弊的话就是iframe):P)。如果你希望传输由服务器启动,那么,也许PHP不是你想要使用的语言。