2013-06-02 125 views
0

我正在使用Meteor.js的內置帳戶功能。當用戶通過cookie登錄時,Meteor似乎首先加載「註銷」版本的頁面,然後自動登錄用戶並重新加載頁面以獲取「登錄」版本。加載頁面使用meteor.js登錄

您可以在示例派對應用中看到此行爲:http://vdawg-parties.meteor.com/ 註冊,然後重新加載頁面。它將加載登出的頁面,然後在2-3秒後切換到登錄版本。

是否可以在頁面加載時加載登錄版本?加載一個頁面然後立即切換到另一個頁面令人困惑。

回答

1

流星是建立在「數據線」型結構上。這意味着最初,當您的項目加載時,服務器和瀏覽器之間沒有發送實際數據。因此,無法等待數據下載,無法確定用戶是否以流星的方式登錄。

就是這個原因流星店當用戶登錄登錄在localStorage數據。

加載屏幕

這是最好有一個加載屏幕,同時流星在下載/同步從本地收藏您等待用戶的登錄服務器,在某種程度上完成:

客戶端HTML

<template name="YourLoggedInSection"> 
    {{#if isLoaded}} 
     ..your logged in section/or place to log in 
    {{else}} 
     <h1>Loading</h1> 
    {{/if}} 
</template> 

客戶端JS

Template.YourLoggedInSection.isLoaded = function() { 
    return Accounts.loginServicesConfigured(); 
} 
+0

這是有道理的,並且至少會避免混亂,但遺憾的是並不能幫助我擺脫我長的頁面加載時間。 – vish

+0

您可以使用離您較近的服務器來最大限度地減少時間 – Akshat

相關問題