Skip to main content
 首页 » 编程设计

jquery之使用 Ajax/jQuery 从 CouchDB 读取连续源

2026年07月31日6over140

我想使用 jQuery 监听 Co​​uchDB 的持续变化 - 现在可以了:

http://localhost:5984/testdb/_changes?feed=continuous 

这意味着每次数据库更新时我都会得到一个新的 json 行 - 但如何使用 jQuery 从此 URL 读取更新?

我尝试过使用这个,但它不起作用:

$.ajax( 
{ 
  url : "http://localhost:5984/testdb/_changes?feed=continuous&callback=?", 
  dataType : 'json', 
  success : function(data) 
  { 
    alert(data.results.length); 
  } 
}); 

编辑:$.ajax调用“成功”函数并立即返回,它不会“轮询”更改。(下图中ajax列的时间轴列为16毫秒)

不,这不是跨域 ajax 问题 - 我可以在 fireBug 中看到有一个具有正确数量元素的响应

因此,任何指导/建议将不胜感激 - 它不一定是 jQuery - 普通的旧 javscript 也可以

请您参考如下方法:

我突然想到了两种好方法来做到这一点。

  1. 使用计时器(即 setTimeout();),每 X 秒对更改源运行 AJAX 调用。您还将存储您收到的最后一个序列号,以便您可以告诉更改源在下次轮询时启动哪个序列号。这将防止重复数据并使响应更小。

  2. 根据您需要支持的浏览器,您也许能够使用 EventSource API。这是一个 jQuery 实现:https://github.com/rwldrn/jquery.eventsource