2014-03-24 50 views
0

這是指http://todomvc.com/architecture-examples/backbone/似乎Backbone.js TodoMVC應用程序存在缺陷

在app.AppView中,render()方法在添加單個待辦事項時被調用很多次。

如果我沒有錯,讓render()方法被多次調用是不好的。這是TodoMVC實現中的缺陷嗎?

+0

添加到集合觸發'add'事件一次...? – jgillich

+0

是的,@ jgillich,當你添加一個項目到一個集合時,「add」事件類型會調用一次回調函數。但是,這與這個問題有什麼關係呢? – SBel

+0

多次調用'render'是絕對沒有問題的,除非你只依賴它被調用一次。這一切都取決於實現,但在我的Backbone應用程序中,當事情發生變化而沒有問題時,我總是呈現整個視圖(我認爲這是常見做法)。 – jgillich

回答

0

在大多數情況下,你會是對的。

但是,在Todo案例中,似乎只有「add」事件被觸發。這是因爲顯然沒有(例如)「同步」事件,因爲它使用本地存儲並且實際上不與服務器同步。

換句話說,它看起來是不是在待辦事項的非常特殊的情況的情況下(由於實現),但在大多數情況下,在註冊處理「所有」事件將觸發渲染多次。

+0

David,你爲什麼認爲多次調用render()方法不是問題?你不正確,'all'事件監聽器多次觸發監聽器。 – SBel

+0

糟糕,我想我誤解了代碼...爲簡單起見,代碼可能使用「all」事件。否則,請使用「添加」和「刪除」事件(甚至只是「同步」)來僅對您關心的事件做出反應。 –

相關問題