2015-01-06 9 views
1

最近我一直在使用Meteorjs開發應用程序,我注意到大多數開發人員/設計人員不會將想法傳遞給用戶,您不需要刷新瀏覽器。實時應用程序中的UI/UX設計

在Meteor中,刷新瀏覽器完全沒用,數據更改直接推送給客戶端。

什麼UI/UX設計實踐匹配這種應用程序行爲?

我想過在用戶界面中添加一個刷新按鈕,希望用戶不刷新瀏覽器,但這是糟糕的設計,這不是一個誠實的設計。通過這種方法,我向用戶說謊。

+0

非常有趣的問題 - 如果您發現博客文章/論壇討論,請發佈鏈接。如你所說,刷新以獲取新帖子的目的是無用的。 我想知道是否有人會刷新以清除字段/選區? –

回答

0

我最近一直在處理這個問題,根據不同情況,我已經處理了一些不同的方法。

有時候用戶刷新的UX對於用戶而言並不重要。通常,對於經常變化的數據,您可以使用類似in this link about designing for realtime(由larsbuur的答案提供)中描述的方法來使用戶理解他們不需要刷新。總的想法是使用不顯眼但清晰可見的數據已經改變的線索。

如果沒有太多的UI狀態無​​法從路由中恢復,刷新瀏覽器應該可以很好地滿足用戶的期望。通常,您不想嘗試使瀏覽器功能以意想不到的方式工作。如果你想刷新刷新UI狀態,你可以嘗試一下類似流星包u2622:persistent-session

您也可以提醒用戶,他們不需要刷新後。例如,使用web storage API

Meteor.startup(function() { 
    var reload = !!sessionStorage.getItem('reload'); 
    var manualReload = reload && !Session.get('hotReload'); 

    if (manualReload) { 
    // Tell the user they don't need to manually reload the browser 
    } 

    sessionStorage.setItem('reload', true); 
    Session.set('hotReload', true); 
}); 

在某些情況下,它是用戶理解他們不應該刷新更爲重要。例如,在線遊戲中,您經常會有一個賽前大廳系統,可以調整遊戲設置,而大堂領導者則是大廳中時間最長的玩家。如果大堂領導人刷新,他們將失去他們的位置。

可以通過重新連接時間窗口來完成這項工作,用戶可以重新獲得他們的位置,或者用戶在超時後在大廳中失去他們的位置。 mizzao:user-status對此很有幫助。在我看來,這是最友好的用戶體驗選項,您甚至可以在用戶名旁邊顯示一個微調圖標,以向其他用戶指示該用戶可能正在重新連接。但是,在實現數據完整性/服務器可靠性方面,我嘗試實現這一點已經證明是有點錯誤和不可預測的。

現在,我選擇了簡單地使用the beforeunload event,就像您在輸入時使用StackOverflow一樣。它不是非常可定製的,並且不像透明的重新加載/重新連接那樣友好,但有時當你只是想警告用戶他們爲什麼不想現在刷新時,這是最好的折衷方案。

+0

'larsbuur的鏈接',你能提供鏈接嗎? –

+0

@馬里奧顯然這個答案已被刪除。我添加了鏈接到我的答案。 – sbking