我有一個jsTree,我試圖雙向「連接」到一個流星集合。流星避免雙刷新當第三方小部件改變它自己的反應性數據源
FileTree.find().observeChanges({
added: function() {
$.jstree.reference('#fileTree').refresh();
},
changed: function() {
$.jstree.reference('#fileTree').refresh();
},
removed: function() {
$.jstree.reference('#fileTree').refresh();
}
});
我想在jsTree拖動周圍的東西,使數據庫的編輯:每當採集與更新的.observeChanges
幫助下現在我自動觸發jsTree.refresh()
。以下是它的外觀:
- 用戶將元素拖放到新位置。
- jsTree更新樹中元素的位置。
- jsTree調用事件處理程序
- 事件處理程序的更新數據庫
我的問題是,如果我沒有理解錯的一切,是數據庫更新將觸發observeChanges
事件,我先前設置。這會導致樹的又一次刷新。這會導致惱人的閃爍,從而中斷用戶。 (即在每次拖放操作之後,文件瀏覽器將無法使用0.75秒左右)。
我該如何防止這種不必要的更新,或者是否有更好的方法來構建我的界面以防止出現此問題的jsTree。
關於不一定需要自動刷新它的好處,但我真的需要這個功能,因爲我要在服務器上設置一些東西來監視文件系統的變化,並將它推送到數據庫然後會需要更新所有客戶端。 – BonsaiOak 2014-09-25 14:37:42
你是什麼意思「本地更新數據庫,阻止」?聽起來像是我需要的,但我不知道這意味着什麼或如何去做。 – BonsaiOak 2014-09-25 14:39:14
我錯了...''Collection.insert()'可以阻止服務器上,但不是在客戶端上... http://docs.meteor.com/#insert – zeroasterisk 2014-09-25 20:31:51