一個非常簡單的場景:在本地流星(v 1.2.1)開發環境(WebStorm)中,自動發佈,並啓用不安全,我有一個MongodbDB(v 3.0.4)集合「信件」。我希望立即迴應本集合中添加,刪除或修改的任何文檔。爲什麼流星Tracker.autorun()會在延遲的情況下檢測到mongodb的變化,如果集合在流星應用程序之外被修改
爲此,我有以下運行功能:
Template.diagram.rendered = function(){
Tracker.autorun(function() {
Letters.find({}).observe({
added: function(document) {
console.log('a new document has been added');
},
changed: function(newDocument) {
console.log('a document has been changed');
},
removed: function(document) {
console.log('a document has been removed');
}
});
})
}
當一個新的文檔是從同一個應用程序中添加的,我可以看到控制檯消息馬上(流星延遲補償)。但是,當我使用外部工具(Robomongo)連接到相同的MongoDB數據庫並添加,更改或刪除「信件」集合中的文檔時 - 在檢測到此更改之前大約需要6-10秒,並且相應的控制檯消息出現在瀏覽器中。 爲什麼需要這麼長時間,而不是幾乎是瞬間的?