日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Meteor的临时的存储:Session

發(fā)布時(shí)間:2025/4/5 编程问答 20 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Meteor的临时的存储:Session 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

在開發(fā)的過程中有的時(shí)候我們只需要存儲一些臨時(shí)的變量,我們并不想使用collection來存儲,這個(gè)時(shí)候我們可以使用Session來存儲,Session可以方便的存儲一些狀態(tài),也可以在helpers中使用。

Session是變化的在客戶端

我們在colletcions存儲的數(shù)據(jù),當(dāng)數(shù)據(jù)在一個(gè)客戶端更新的時(shí)候,更新的數(shù)據(jù)會立刻同步到服務(wù)器和其他的客戶端,這樣因?yàn)镸ongo.Collection是可以是別處Meteor的更新數(shù)據(jù),Session是一樣的道理,但是他并不會同步到服務(wù)器端,和collections一樣我們并不需要寫額外的代碼維護(hù)Session的狀態(tài),更新Session的內(nèi)容只需要是用Sessiong.set(key,value),當(dāng)Session的值變化的時(shí)候,只需要在helpers里面調(diào)用Session.get(key)即可。

在html里面顯示點(diǎn)擊數(shù)

<head><title>meteor-session</title> </head><body>{{> counter_template}} </body><template name="counter_template"><button>點(diǎn)擊</button><p>一共點(diǎn)擊了 {{counter}} times.</p> </template>

counter的值需要在helpers中返回

用Session存儲點(diǎn)擊的總數(shù)

if (Meteor.isClient) {if (typeof( Session.get('counter')) == 'undefined') {Session.setDefault('counter', 0);}Template.counter_template.helpers({counter: function () {return Session.get('counter');}});Template.counter_template.events({'click button': function () {var counter = Session.get('counter')counter++;Session.set('counter', counter);}}); }

我們先檢查Session里面的counter有沒有值,沒有的話就設(shè)置一個(gè)默認(rèn)值為0,不然我們在做加法的時(shí)候會有NaN(Not a Number )的錯(cuò)誤。
在helper里面給counter賦值為Session.get('counter')。
處理button的點(diǎn)擊事件,每點(diǎn)擊一次,計(jì)數(shù)器加1.
我們同樣的打開連個(gè)瀏覽器做測試,點(diǎn)擊一個(gè)瀏覽器的button的時(shí)候,其顯示的計(jì)數(shù)器會加1,另一個(gè)瀏覽器沒有任何變化。

刷新瀏覽器會導(dǎo)致計(jì)數(shù)器從0開始

Session并不會在server或者click中保存數(shù)據(jù),這樣就會出現(xiàn)一個(gè)問題當(dāng)我刷新瀏覽器的時(shí)候,計(jì)數(shù)器會從0開始,怎么去解決這個(gè)問題呢?
可以在在瀏覽器中保存計(jì)數(shù)器的值。

if (Meteor.isClient) {if (typeof( Session.get('counter')) == 'undefined') {Session.setDefault('counter', localStorage.getItem('counter'));}Template.counter_template.helpers({counter: function () {return Session.get('counter');}});Template.counter_template.events({'click button': function () {var counter = Session.get('counter')counter++;localStorage.setItem('counter', counter)Session.set('counter', counter);}}); }

localStorage是html5中的本地存儲,在每次給Session的計(jì)數(shù)器賦值的同時(shí),我們也給本地存儲賦值,在每次初始化的時(shí)候我們給Session的默認(rèn)值是本地存儲的計(jì)數(shù)器的值,這樣只要我們本地存儲的計(jì)數(shù)器不被清除,刷新瀏覽器就不會導(dǎo)致計(jì)數(shù)器從0開始了。

localStorage中存儲的counter的值:

項(xiàng)目地址:https://github.com/jjz/meteor/tree/master/meteor-session

總結(jié)

以上是生活随笔為你收集整理的Meteor的临时的存储:Session的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。