将行添加到mysql数据库时发出Ajax警报

时间:2010-06-29 17:29:32

标签: php jquery mysql ajax

我正在尝试为我的网站创建一个实时订单页面。我需要页面自动更新以显示已下达新订单,并在数据库中新订单行时显示警报/声音。

关于我如何轻松实现这一目标的任何想法?

谢谢, -AJay

3 个答案:

答案 0 :(得分:4)

您需要使用类似Comet的内容才能将数据推送到客户端。

然后,使用MySQL trigger以某种方式在服务器应用程序中引发一个事件,该事件将Comet连接打开以推送适当的数据。

许多开发人员使用的不太优雅的方式(至少在WebSockets变得流行之前)是poll with AJAX for changes,但这会带来高带宽开销和更长的延迟。

答案 1 :(得分:1)

从AJAX视图中你应该在这样的javascript中使用计时器......

// First parameter is an expression and second is a interval as miliseconds.
setTimeout ( "UpdateFunction()", 2000 );

我还建议您使用此代码...

setTimeout ( "UpdateFunction()", 5000 );

function UpdateFunction( )
{
  // (do something here)
  setTimeout ( "UpdateFunction()", 5000 );
}

你的UpdateFunction()应该调用更新订单列表的php或asp页面。

答案 2 :(得分:0)

我认为轮询方法会对你有好处,因为服务器推送对浏览器有许多负面影响。

如果使用轮询路由,我建议在您的页面上发生一个定时事件,该事件将调用Web方法。然后,Web方法将返回有关排队订单的数据(类似ID的内容)。将ID列表与页面上当前正在填充的内容进行比较,并假设您在新给定的列表中有一些不存在的内容(反之亦然),请调用另一个方法来检索其他详细信息以显示来自或删除旧条目。

这样,您就不需要为服务器保持稳定的流(这会阻止用户的浏览器发出额外的内容请求)。

我希望这有帮助。