将Knockout.js与CouchDB一起使用 - 更改时更新

时间:2011-08-09 05:56:48

标签: couchdb knockout.js

只是想知道订阅我的CouchDB数据存储的最佳方式,这样如果沙发中的文档更新,KO视图也会更新(自动)。这有可能吗?

以下是我到目前为止的内容,它只是从user_info文档中获取用户名。

$.getJSON('http://localhost/couchdb/user_info', function(data) {
    var viewModel = ko.mapping.fromJS(data);
    ko.applyBindings(viewModel);    
});

非常感谢任何帮助!

2 个答案:

答案 0 :(得分:5)

CouchDB支持文档更改时的通知:changes feed

您可以使用?since=X参数轮询更改Feed,以便仅接收自X以来的更新。

您还可以通过添加&feed=longpoll来“长时间轮询”Feed。如果还没有更改,CouchDB将收到您的查询,但在最终发生更改之前不会回答。

或者,您可以通过添加&feed=continuous来获得完整的COMET样式Feed。这与longpoll类似,但CouchDB 永远不会关闭连接。每次发生变化时,它都会向您发送JSON,然后继续等待。

最后,当数据库中的任何更改时,您可以收到通知,或者您可以指定要在服务器上运行的Javascript过滤器(&filter=designdoc/filtername)。只有过滤器批准,您才会收到通知。

答案 1 :(得分:1)

你看过http://hood.ie/它是否适合。我也在我的couchdb中运行连帽衫作为os_daemons服务。

很好。