2016-01-20 47 views
2

我試圖谷歌下面的問題,但沒有出現(這是超級不可思議我需要)。在瀏覽器中的角度應用程序壽命

什麼是瀏覽器中的Agular應用程序生命週期?

或者當用戶打開一個Angular網站時,應用程序實例在瀏覽器中一直保留,直到用戶離開網站或關閉瀏覽器或者?

在單獨的說明是最好使用服務來保存全局變量(例如記錄的用戶名)或$ rootScope?

謝謝!

+1

如果可能的話,您的兩個問題應該被分解爲單獨的帖子。 –

回答

3

什麼是瀏覽器中的Agular應用程序生命週期?

當特定的標籤/網站打開時,角度應用仍然存在。如果你離開它然後回到它,爲了所有的意圖和目的,這是一個新的應用程序實例。你可以模仿一個持續的會話,但是這需要你自定義實現。

這裏是應用程序上的刷新,你可能有興趣在保存數據後 - AngualrJS: sustaining data on html refresh

在單獨的說明是它更好地使用服務保持全局變量(如登錄的用戶名稱)還是$ rootScope?

這是有據可查的,你可以在SO和Internet上找到無數來源,但最好使用角度服務在各種控制器之間共享數據。如果可以避免的話,建議不要污染$ rootScope。

這裏是同樣的問題問及SO的解決方案:

1

如果使用角度的路由或其他方式來加載意見不重新加載頁面,那麼角度應用程序將保持活動狀態,直到您離開頁面(關閉或刷新)。
每次通過角及其控制器的數據加載一個頁面是在它的初始狀態,這樣當你改變頁面(除非你堅持它的地方,這是)到控制器的數據的任何修改都會迷路

關於你提到的第二個問題,最好的方法應該是在每次更改頁面後獲取用戶數據(以檢查用戶是否仍然登錄。保存用戶的數據客戶端而不檢查其是否仍然有效可能是安全問題)。但無論如何,服務是比使用rootScope更好的存儲數據的方式

相關問題