将新元组添加到数据库时自动刷新内容

时间:2011-12-08 03:20:38

标签: php mysql ajax

我正处于开发某事的概念化阶段,但不太确定某个特征。

我有一个表格中的DIV,我们称之为id ='divComments'。此div包含特定标题的所有注释。它从数据库中检索所有数据,这很容易。

现在刷新页面时,将使用所有注释填充此div。如果其他用户添加了评论,则所有其他用户在登录时(在该时间点之后)或者刷新页面时都会看到此评论。

如果我希望从数据库中输入div并在将某些内容插入数据库中的关系/表时自动刷新,该怎么办?所以我打开了我的页面(我没有刷新它,只是盯着它)显示让我们说x和其他人在特定的数据库表中添加一个元组让我们调用y,我的div现在显示x和y。换句话说,它可以从数据库中更新实时而无需刷新。

任何人都知道如何做这样的事情?

1 个答案:

答案 0 :(得分:2)

HTTP是无状态的。一旦资产通过HTTP连接完成下载,连接就会被破坏,服务器不再知道客户端下一步在做什么。

有些方法可以使用Cookie和会话等来捏造有状态行为,但这些方法仍需要与服务器建立新连接才能获取新数据。

正在开发的技术可以让Web服务器在新的数据可用的瞬间“推送”到客户端(websockets,服务器发送的事件等),但这些仍然处于最佳选秀阶段部分和浏览器支持充其量只是参差不齐。

您唯一真正的选择是使用刷新元标记轮询服务器(极其低效!),使用AJAX轮询服务器(更好,因为您可以将其设计为仅获取已更改的数据,但仍不理想),或者使用持续闲置的AJAX连接,直到新数据可用,此时数据被下载,连接关闭,并且打开一个新连接以空闲以获取更多数据(将允许立即响应,但很难正确设置)。