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