使用AJAX观察SQL数据库的更改

Jac*_*art 18 sql ajax jquery

我的数据库中有一列将随机更新.每当该列更新时,我需要刷新页面上的内容.如何使用AJAX + jQuery仅对数据库更改执行操作?

Rob*_*vey 11

你所描述的通俗地称为Comet编程.Comet描述了一组用于将内容推送到具有持久HTTP连接的网页的技术.

将使用数据库服务器中的触发器/存储过程组合来启动推送.这样,无论数据更新来自何处,都会发生这种情况.

  • 例如http://www.ape-project.org/ (2认同)

Nel*_*mel 5

服务器(数据库/ Web)无法启动连接 - 只有客户端才能启动.因此,您必须轮询数据库,直到有更新.您可以创建一个检查数据库和jQuery使用的Web服务.

编辑:我纠正了.在服务器向其"推送"数据之前,可以保持AJAX连接处于打开状态.请参阅:http://en.wikipedia.org/wiki/Reverse_Ajax

显然它确实是民意调查:http: //en.wikipedia.org/wiki/Push_technology#Long_polling.如果服务器还没有要发送的任何数据,它会保持连接打开,直到它发生.它不是"纯粹"推送技术,因为客户端没有服务器连接的侦听端口.然而,效果类似.

编辑2:回到回答你的问题......你将不得不选择如何"轮询"网络服务.然后,Web服务必须检查数据库以查看是否有更新.检查数据库的更新可能是最棘手的,实际上取决于您的要求.您可以运行SQL查询以查看是否有任何更改,但您如何知道?您需要某种参数(通常是日期)来进行比较.如果做错了,您可能会错过一些更新或多次点击进行一次更新.Autocracy所说的将是获得更新通知的好方法.您可以将该列表保留在数据库,内存等中,并在客户端获取更新时将其清除.


Pra*_*ana 5

使用javascript的setinterval函数进行轮询并检查更新的dababase字段的值

请查看以下链接以获取更多详细信息http://www.elated.com/articles/javascript-timers-with-settimeout-and-setinterval/