
Spine 函式庫
|
183
儲存資料
Spine 都是將資料儲存在記憶體中,不過其實也能利用 HTML5 的本地儲存區(Local
Storage),或利用 Ajax 將資料存回後端。
使用本地儲存區的做法並不難,只要在網頁裡引用 JavaScript 檔案
spine.model.local.js
,
然後利用
extend()
函式將
Spine.Model.Local
加進模型裡即可:
// 利用本地儲存區儲存工作項目
Task.extend(Spine.Model.Local);
Task.fetch();
儲存在瀏覽器本地儲存區裡的資料,不會自動被寫進模型裡。要等到有人呼叫
fetch()
函式後,本地儲存區裡的資料才會被裝進模型裡。通常我們會在應用程式其他部分都已
經初始化完成後,再做這個動作。資料一旦全數裝進模型裡,就會觸發
refresh
事件:
Task.bind("refresh", function(){
// 新的工作項目!
renderTemplate(Task.all());
});
如果想要利用 Ajax 儲存資料,做法也很類似;先在網頁裡引用 JavaScript 檔案
spine.
model.ajax.js
,然後利用
extend()
函式將
Spine.Model.Ajax
加進模型裡:
// 存到伺服器端
Task.extend(Spine.Model.Ajax);
Spine 預設會自動產生一組 URL(直接拿模型的名稱加上複數型態 s)。拿前面這段程
式碼來說,由 Spine 幫
Task ...