
212
|
第十二章
應該要等到網頁載入完成,且所有的檢視器、模型、集合物件都已準備妥當之後,再
啟用 Backbone.history。截至目前為止,Backbone 還不支援 HTML5 的
pushState()
和
replaceState()
。這主要是因為目前使用
pushState()
和
replaceState()
時,還需要在
伺服器端做一些特別的處理,而且目前 IE 還不支援這兩組函式。等到上述兩個問題解
決之後,Backbone 應該就會考慮增加這兩組函式的支援。在那之前,相關功能還是得靠
URL 的分段資訊來完成。
和伺服器同步
Backbone 預設會在我們每次儲存模型時,利用 jQuery 或 Zepto.js 函式庫發送 Ajax 請求
通知伺服器。但它究竟是如何做到的呢? Backbone 的做法,是在每次建立、修改,或
刪除模型之前,先呼叫
Backbone.sync()
函式,再發送一組 RESTful 的 JSON 請求給伺
服器,如果伺服器有成功的處理請求,就會更新用戶端的模型。
想達成這樣的同步機制,只要在模型裡定義一組實體屬性
url
,並準備好相對應的
RESTfully 伺服器端程式就行。其餘的部分,Backbone 會全部幫你搞定:
var User = Backbone.Model.extend({
url: '/users'
});
url
屬性值可以是一組字串,也可以是任意一組會回傳字串的函式。可以是相對路徑或
絕對路徑,不過一定要是模型的端點。
Backbone 會分別將新增 ...