2014-04-17 53 views

回答

3

Meteor.Session僅適用於客戶端。這是您的應用程序中的JavaScript全局對象。如果刷新頁面,它會被清除。您的會話存儲在客戶端localStorage,https://developer.mozilla.org/en-US/docs/Web/Guide/API/DOM/Storage。流星不會在會話中使用cookie,https://www.meteor.com/blog/2014/03/14/session-cookies

你需要解釋更多你正在努力完成的事情。我一旦加載頁面就使用Meteor.Session,而不是用於很多事情,但爲了獲得我的初始狀態,我的URL包含足夠的信息來設置初始狀態。

隨着流星,你最好不想刷新瀏覽器。理想情況下,AJAX和HTML5推送狀態以及Meteor的反應性都會發生或發生。

您應該閱讀他們的文檔。這是關於Session的部分,http://docs.meteor.com/#session

0

這是一個老問題,但是因爲我發現自己需要同樣的東西,所以我就是這麼做的。在設置值時,我「擴展」了會話以將其實際存儲在本地存儲中,並在加載頁面時將本地存儲加載到會話中。

// improving the session package to persist it to the localstorage 
Session._set = Session.set; 
Session.set = function(key,value) { 
    Session._set(key,value); 
    localStorage.setItem(key,JSON.stringify(value)); 
}; 


// helper function 
function isJSON(str) { 
    try { 
     return (JSON.parse(str) && !!str); 
    } catch (e) { 
     return false; 
    } 
} 

// loading the localstorate on load 
for (var i = 0; i < localStorage.length; i++) { 
    var key = localStorage.key(i); 
    var value = localStorage.getItem(key); 
    Session._set(key,isJSON(value) ? JSON.parse(value) : value); 
}