【发布时间】:2011-04-07 00:27:53
【问题描述】:
人,
我正在开发一个网页,每次数据库获得更新时都需要刷新该网页。我已经在我的 PHP 代码中完成了 checkDatabaseUpdate()。
但是现在我真的需要一些帮助来开发一个简单的彗星来等待响应,另一个来检查更新。
有人有任何简单的例子可以帮助我吗?
彗星是解决这个问题的正确方法吗?
谢谢,
【问题讨论】:
人,
我正在开发一个网页,每次数据库获得更新时都需要刷新该网页。我已经在我的 PHP 代码中完成了 checkDatabaseUpdate()。
但是现在我真的需要一些帮助来开发一个简单的彗星来等待响应,另一个来检查更新。
有人有任何简单的例子可以帮助我吗?
彗星是解决这个问题的正确方法吗?
谢谢,
【问题讨论】:
您想说的是,在数据库中执行了后端的查询(INSERT、UPDATE、DELETE),并且您想在执行该查询时刷新用户的首页?
嗯 .. 使用 jQuery(循环)“Ajax 检查”在前端控制器中进行数据库更新,然后刷新。
function refreshPage () {
$.load('checkModifDb.php', function(response, status) {
if .... { do the trick here - check jquery load.api }
}
});
and then use setInterval( "refreshPage()", 10000 ); to run the function every 10 seconds and
refresh only if it founds that db was modified.
我现在想不出任何东西,但我想只要稍加修改,你就可以做到这一点。这就是 twitter.com 的做法。
【讨论】:
$.ajax请求并返回一个参数,分析它并在满足条件时启动页面的引用。
彗星是解决这个问题的正确方法吗?
由于 PHP 的工作方式(让 Web 服务器守护进程处理传入请求),将其与长轮询技术结合起来可能会导致服务器不满意。每个连接的用户都将保持与 Web 服务器守护进程的连接。根据该守护进程的配置,您可能会发现 Comet 是针对您自己的服务器的有效拒绝服务攻击。
在这里使用普通的旧的短命 ajax 轮询可能会更好。
【讨论】: