2011-10-13 55 views
0

我正在構建需要客戶端呈現項目的新聞Feed類型功能。有不同類型的Feed項目,這意味着每種類型需要不同的模板。我目前使用UnderscoreJS模板,但我很樂意接受新的想法。使用多個模板呈現一個集合

我使用大致是這樣的方法:

template : { 
    f : "<li> <%= item.user.name %> uploaded a file </li>", // file upload 
    m : "<li> <%= item.user.name %> just joined </li>", // just joined 
    p : "<li> <%= item.user.name %> - <%= item.data.txt %> </li>" // comment 
} 

var html=""; 

for(i in feeditems){ 
    var item = feeditems[i]; 
    html+= _.template(template[item.type], { item: item }); 
} 

$('#container').html(html); 

這是解決這個問題的最好方法是什麼?

+0

取決於......「高效」是指「快」還是意思是「最適合開發人員的生產力」?我建議任何將HTML模板置於JavaScript內部的東西對後者來說都是不好的。 – Domenic

回答

1

From Underscore.js documentation

模板

編譯JavaScript的模板爲可用於渲染評估功能。用於從JSON數據源渲染複雜的HTML數據。

從我讀到的應該是非常有效的。

它是最高效的嗎?

很難說,最有效的方法是隻是硬編碼的字符串不是?但是,根本沒有查找,有時最好犧牲一點效率來獲得更多可讀代碼。

你有任何性能問題?如果你不這樣做,我不會擔心。如果你這樣做,而不是想這是否是最有效的模板,那麼我應該對應用程序進行配置,因爲很可能瓶頸在其他地方。