有人可以解释如何创建一个使用数据库中的值自动更新的 .php 页面吗?使用 AJAX 最适合这样的事情吗?我想要这个 PHP 代码,但我希望在添加或更改“values01”时更新页面,而无需刷新页面。
任何帮助,将不胜感激!:)
$query = "SELECT values01 FROM users WHERE username='$username'";
$result = mysql_query($query);
while($row = mysql_fetch_array($result, MYSQL_ASSOC))
{
echo nl2br("{$row['values01']}");
}
问问题
1455 次
1 回答
2
您所描述的将是来自 Web 服务器的推送通知。不幸的是,我还没有找到一种可靠的方式来进行传统的推送,在这种方式下,Web 服务器将启动与客户端的连接(根据我有限的研究,似乎有人提议使用 http 标准来支持推送,但是,它没有'看起来不像一个被广泛采用的标准曾经出现)。但是,这可以通过更迂回的方式来完成。
有一种方法可以绕过通常使用的推送限制:
- 浏览器连接到页面,加载数据库的当前“状态”。会话变量(我们称之为 $_SESSION['currentState'])与数据库的起始状态一起保存。客户端浏览器上的 javascript 计时器开始计时(假设计时器为 10 秒长)。
- 一旦计时器到期,将对服务器上的脚本进行 AJAX 调用。让我们将该脚本称为“updateValues.php”。updateValues.php 检查数据库的新状态。如果数据库与 $_SESSION['currentState'] 不同,我们会以某种不错的形式(json、xml 等)返回所做的任何更改,并使用新状态更新 $_SESSION['currentState']。如果没有变化,我们会在那个程度上回复一些东西。
- 收到数据后,浏览器会执行一些 javascript,如果对 db 进行了更改,则更新浏览器中的呈现,然后重新启动计时器。
- 转到 2。
典型的推送通知在这里唯一缺少的是 10 秒(或您为计时器选择的任何内容)延迟。
于 2010-07-26T16:01:38.523 回答