是否可以从不同于生成它的PHP脚本访问html文档?

时间:2012-01-10 17:21:53

标签: php javascript

以下是该方案: 我有一个页面将数据记录到MYSQL。我有另一个页面来读取该数据并允许它被查看。当记录新的数据时,我想要检查第一个脚本并查看浏览器中是否打开了查看页面,如果是,则将最新数据附加到视图的末尾。此外 - 任何人都可以指出一些信息,概述PHP和浏览器如何互动?我认为我有javascript的DOM概念......但就PHP而言,只要页面被发送,那就是它......

3 个答案:

答案 0 :(得分:1)

一旦PHP被发送,你就是正确的。就是这样。

加载页面后无法将数据发送到PHP页面。还有另一个稍微有点麻烦的方法,但最简单的方法是通过Ajax轮询页面。

因此,有一个脚本每20秒,向另一个PHP脚本发送一条消息,其中包含您收到的最后一个MySQL日志的时间戳,然后让脚本返回该时间设置的所有数据。 / p>

我不确定你对JavaScript有多新,但最简单的方法是使用JQuery的$ .ajax并将新的MySQL记录编码为JSON。

答案 1 :(得分:0)

如你所述,这是不可能的。查看页面必须通过定期重新加载或通过javascript / AJAX轮询服务器以进行更改。

你是对的,一旦PHP发送页面就没有进一步的影响。实际上,一旦输出完成,服务器上的PHP执行线程就会被终止,因此生成页面的东西甚至不再存在。

答案 2 :(得分:0)

要扩展Dolondro的建议,而不是定期轮询服务器以获取更新,您可以使用Server-Sent-Events(现代浏览器新近支持)。

通过这些,您基本上只需向服务器发送1个ajax请求,并且连接保持打开状态。然后,服务器可以随时发送更新。当浏览器收到事件时,它可以将数据添加到屏幕。即使如此,连接仍保持打开状态,服务器可以在发生时发送其他事件/更新。

W3C页面: http://dev.w3.org/html5/eventsource/

百科: http://en.wikipedia.org/wiki/Server-sent_events

更多信息: https://www.google.com/search?ix=hcb&sourceid=chrome&ie=UTF-8&q=server+sent+events