1. 程式人生 > >meteor會話和跟蹤器

meteor會話和跟蹤器

現在在 Microscope 下,使用者在 App 中的當前狀態是完全包含在 URL 裡面,並且需要從 URL (或者資料庫)裡面尋找。

但是在許多情況下,你需要儲存一些只對應於當前使用者的應用程式版本的短暫狀態(例如,一個元素是否顯示或隱藏)。利用 Session 可以很方便地去做到這一點。

Session 是一個全域性的響應式資料儲存。它全域性性的意思是全域性的單例物件:這個 Session 物件在全域性都是可被訪問到。全域性變數通常被認為不是一件什麼好事,Session 可以作為中央通訊匯流排用於專案的不同地方。

修改session

Session.set('mySession',item)

mySession為session名稱,item為session中要儲存的資料,方法在本地儲存 item資料,通過Session.get('mySession')來返回session

session的自動跟新需要使用跟蹤器(tracker)

Deps是老版本的tracker;

使用tracker前需要安裝tracker包,meteor add tracker

自動執行(Autorun)機制。顧名思義,每一次 autorun 上下文中的響應式資料來源發生變化的時候,autorun 函式就會自動執行。

Tracker.autorun方法用於持續關注 tranckSession 的值。每當這個物件的變化,該模板將自動更新。

 

如果我們手動去過載瀏覽器視窗,自然就會丟失我們的 Session 變數(因為這將會建立一個新的會話)。另一方面,如果我們是引發動態程式碼過載(即,通過修改並儲存我們的原始檔)去重新載入頁面,Session 變數卻仍然存在。

因此,如果使用 Session 變數來儲存使用者狀態,使用者幾乎不會察覺到動態程式碼過載的發生。因為它將保留所有 Session 變數的值。這可以使我們在部署新版本的時候,使用者發生中斷的機會降到最低。

再想一想,這意味著,只要我們做到用 URL 和 Session 把所有狀態儲存下來,那麼當更新版本的時候,客戶端正在執行的應用程式就可以動態過載,不丟失任何資料。

注:該meteor教程為之前本人學習meteor時做下的記錄檔案,故會有較多的截圖示意,當然,一些多餘的console.log()請各位多多包涵,希望這些經驗可以幫助到大家,另外,希望大家在編碼時有良好的編碼習慣。謝謝。