我正在尝试为我的网站创建一个实时订单页面。我需要页面自动更新以显示已下达新订单,并在数据库中新订单行时显示警报/声音。
关于我如何轻松实现这一目标的任何想法?
谢谢, -AJay
答案 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列表与页面上当前正在填充的内容进行比较,并假设您在新给定的列表中有一些不存在的内容(反之亦然),请调用另一个方法来检索其他详细信息以显示来自或删除旧条目。
这样,您就不需要为服务器保持稳定的流(这会阻止用户的浏览器发出额外的内容请求)。
我希望这有帮助。