2013-01-07 28 views
1

我想在我的程序開始時註冊一個回調方法,然後在我的Web應用程序的整個生命週期的不同時間調用它。回調工作正常,直到我刷新瀏覽器,之後我使用的類變量被重置。這樣做的正確方法是什麼?現在我做了以下 -如何註冊回調,並通過網站刷新持續它?

class MyManager 
    @registerCallback : (callback) -> 
     @callback = callback 

而其所謂的像 -

MyManager.registerCallback myMethod 

任何幫助,將不勝感激!

+0

相關? http://stackoverflow.com/questions/4214731/coffeescript-global-variables –

+1

你真的沒有一個全局的,只是「類」變量「MyManager.callback」。您通常使用Cookie(或本地存儲)來在頁面重新加載時保留內容,但我想不出以這種方式存儲函數的任何理智方式。我認爲你需要一些附加到onload處理程序的設置階段來完成這種事情。 –

+0

@ muistooshort你是對的。編輯。 – Suchi

回答

0

我知道這個問題是舊的,但我認爲這可以幫助別人:

// persist while window is open 
sessionStorage.myMethod = (function (msg) { alert(msg) }).toString() 

// persist forever (while user keeps browser data) 
localStorage.myMethod = (function (msg) { alert(msg) }).toString() 

然後運行該功能是這樣的:

// execute from sessionStorage 
eval("(" + sessionStorage.myMethod + ")('Hello World!')"); 

// execute from localStorage 
eval("(" + localStorage.myMethod + ")('Hello World!')");