2

我們在我們網站上使用的JavaScript代碼庫結構非常好(如果有人感興趣,概述here)。除了數據綁定之外,backbone.js(或knockout.js)還提供什麼優勢

我一直在尋找將backbone.js(或knockout.js,用於某些特性)集成到我們的代碼中 - 但仔細考慮之後,我並不認爲我太關心數據綁定(我的應用沒有做密集的客戶端<->服務器數據交換,它更偏向於服務器 - >客戶端 - > js數據管道),所以我不在乎是否沒有動態數據綁定和同步。

由於我對這些庫不太熟悉,恐怕通過選擇使用這些庫,我缺少一些其他非常有用的功能。我是嗎?

+0

敲除和骨幹根本不是非常相似。看看這些視頻的各種模式的體面細分。 http://addyosmani.com/scalable-javascript-videos/ –

+0

的確,我擔心這個問題過於簡化了兩者之間的差異。 – Goro

回答

4

就我個人而言,如果我正在構建一個完整的單頁Web應用程序,我會使用主幹。如果您的網站主要是HTML,但使用JS來添加一些小功能,我不擔心它。 Backbone擅長處理客戶端數據模型,並將更改與查看更新綁定。

就我個人而言,我用knockout,發現它依賴於HTML中的數據綁定混淆。這對我來說不是一件好事。建立部分動態的網站可能會更友好些,因爲很多邏輯都直接進入了html視圖層。你可能想聽最近的這個播客採訪,這個採訪對象是淘汰賽的創造者,因爲它可能揭示了一些事情。 http://javascriptjabber.com/

在我的情況下,當用一些動態元素構建一個大網站時,我堅持使用一些全局jQuery插件和頁面特定JS的模式。它適用於簡單添加到特定頁面的情況。

我不知道這個問題是非常具體的,所以這裏是一個通用的答案:)

1

我首先要指出的是,雖然聲明式數據綁定是KnockoutJS的關鍵特徵,它不是一個核心骨幹框架的一部分。確實存在多種插件,例如(Rivets.jsOrchestrator),它們在Backbone JS中提供這種功能。

現在來談談您的問題的主要方面 - 除了數據綁定KnockoutJS以外的其他優勢沒有太多優勢。但即使交互式數據綁定不是主要關心的問題,您絕對應該考慮使用BackboneJS。其原因是Backbone與客戶端路由系統捆綁在一起,並且簡化了管理從JavaScript服務器獲得的數據的最簡單方法。

正如您所提到的,您的應用程序是數據驅動的,可能您在客戶端獲取的數據不是一次全部獲取,而是逐步更新。在這種情況下,擁有可觀察的模型和集合可以幫助您很好地管理您的應用內數據依賴關係(並保留用於可視化數據同步的所有窗口)。

相關問題