2011-11-28 63 views
16

我讀了很多Backbone.js教程,但其中大多數都是處理靜態對象。是否有任何Backbone.js教程與服務器教授「.sync」?

當然,我有服務器上的數據。我想要一個教程,顯示如何backbone.js可以與服務器通信以獲取數據,發佈數據等。

這是.sync,對不對?我閱讀了backbone.js文檔,但仍然對如何使用此功能感到模糊。

或者有人可以給我看一個例子嗎?

據:http://documentcloud.github.com/backbone/#Sync

Backbone.sync是骨幹調用每次 嘗試讀取或模型保存到服務器時間的功能。

但是什麼時候?我在哪裏放置該功能?我不知道如何使用它,文檔沒有提供任何示例。數據何時加載到我的模型中?我可以定義何時......對嗎?

+0

這樣做。同步將POST或PUT XHR請求發送到服務器,以便保存客戶端模型狀態(或從服務器獲取狀態的GET)。它有助於使用瀏覽器的Web開發人員工具查看網絡流量。 – Thilo

+0

對於.sync,我不必再使用JQuery的.ajax()了? (爲了獲得數據到我的模型等) – TIMEX

+0

如果默認的.sync適合你,那麼,是的(它爲你使用.ajax)。如果你需要改變它的功能,那麼你可能需要用一些直接使用.ajax的代碼替換它。 – Thilo

回答

2

他們不是免費的,但以下屏幕截圖都有一個關於後端工作,以及如何發送數據和從骨幹獲取數據。

  1. Tekpub是關於asp.net MVC3 9部分截屏,大約使用骨氣,寫一個管理模塊來管理生產整個第6部分。它顯示了所有關於MVC3處理路由和發送&接收數據

  2. Peepcode

+3

不幸的是,這個系列期待已久的第三集涉及網絡和持久性,突然轉向Coffeescript,這實際上限制了它的可訪問性。 – 2011-11-28 14:38:54

+0

是的,這是真的,但我瞭解coffeescript足以知道它被編譯成什麼......你是絕對正確的,但它限制了大多數JavaScript愛好者的可訪問性。 – Sander

+2

@sander謝謝。 Backbone.sync怎麼沒有「免費」的教程? – TIMEX

3

您可以覆蓋骨幹本地同步功能,如果你忽略它:

Backbone.sync = function() { 
    //Your custom impl here 
} 

之後,只要您撥打喜歡.save()上收集模型或.fetch()骨幹函數調用此函數。您不必關心數據傳輸了。

我建議看一看Backbones源代碼,看看默認的同步函數是如何實現的。然後創建您自己的或採用您的服務器來支持本機功能。

11

你從來沒有真正要看看.SYNC,除非你打算將其覆蓋。對於正常使用,您可以隨時調用model.save(),並執行一個帖子或放(取決於該記錄是否已經存在)。如果你想從你的後端獲取數據,使用collection.fetch()

你當然也需要指定一個網址,通過您的收藏屬性,collection.url

+1

這是答案:'.sync'在我們調用'model.save()'時發生。 – Ziggy

+0

@Ziggy當然,這就是'.sync'被調用的時候,但是它並沒有幫助解釋混淆並導致TIMEX混亂的魔法。根據模型和該模型各自的集合定義,URL是隱含的。 – JoeBrockhaus