使用 Ajax 进行“实时”更新

Posted

技术标签:

【中文标题】使用 Ajax 进行“实时”更新【英文标题】:"Real time" update with Ajax 【发布时间】:2013-03-12 07:27:54 【问题描述】:

我有一个为用户显示“问题”和“答案”的网页。问题由管理员创建。我正在使用 php

新的要求是“实时”更新用户的问题/答案(这不像策略游戏那样实时,但我称之为实时)。 当管理员创建新问题时,用户应该看到它(出现新问题)。 当管理员关闭现有问题时,它会从用户的角度消失。

我正在考虑使用 ajax 和 javascript timer 创建它——每分钟调用 ajax 并更新结果。 我想知道这是正确的方法吗?

我还想知道可用性/性能...我真的不需要为未更改的用户更新那些问题...您有什么建议可以确定,管理员更改了哪些问题(也许我应该添加类似“last_update_date”之类的问题用于数据库中的问题,并将“last_update_date 放入每个问题的隐藏字段”并进行比较?

【问题讨论】:

ajax 是必须的吗?如果不看看Socket.io 或Websockets,这些都是更“实时”的技术 这不是必须的,但我不使用 socket.io 和 websockets,这不是实时的(它可以每分钟更新一次,而不是每 sek 或类似的,所以我认为我可以使用我“可以使用”的东西,而无需为此项目学习新技术)。 如果您认为每分钟循环播放很容易,请使用socket.on('newQuestion', function () , socket.on('updateQuestion', function () google for long pooling 【参考方案1】:

如果您不想使用 Socket.io 实现自己的逻辑(如 cmets 中所建议的那样),您应该查看一些在线可用的服务。

我已经使用Pusher.com 有一段时间了,对此我很满意。

【讨论】:

以上是关于使用 Ajax 进行“实时”更新的主要内容,如果未能解决你的问题,请参考以下文章

谷歌图表实时更新ajax

通过ajax调用更新行后使用jQuery对表进行排序

在 Flask 中使用 SQS 实时更新

php+ajax实现答题总量数据的实时更新

网站上的实时更新 - 每秒 1 个 ajax 是不好的做法?

django,ajax:如何有效地实时更新一堆数据