实时应用程序中的UI / UX设计

时间:2015-01-06 11:37:53

标签: user-interface meteor real-time user-experience

最近我一直在使用Meteorjs开发应用程序,我注意到大多数开发人员/设计人员都没有将这个想法传递给用户,而您不需要刷新浏览器。

在Meteor中,刷新浏览器完全没用,数据更改会直接推送到客户端。

哪种UI / UX设计实践与此类应用程序行为相匹配?

我想在UI中添加一个刷新按钮,希望用户不刷新浏览器,但这是糟糕的设计,它不是一个诚实的设计。通过这种方法,我向用户撒谎。

1 个答案:

答案 0 :(得分:0)

我最近一直在处理这个问题,根据具体情况,我可以通过几种不同的方式处理它。

有时用户刷新的用户体验并不重要。通常,对于经常更改的数据,您可以使用in this link about designing for realtime(由larsbuur的回答提供)描述的方法,让您的用户了解他们不需要刷新。一般的想法是使用不引人注目但可见且清晰的提示数据已经改变。

如果没有太多的UI状态无​​法从路由中恢复,刷新浏览器应该能够满足用户的期望。通常,您不希望尝试使浏览器功能以意想不到的方式运行。如果您希望在刷新期间保持UI状态,可以尝试使用Meteor包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对此很有帮助。在我看来,这是最友好的UX选项,您甚至可以在用户名旁边显示一个微调器图标,以向其他用户表明用户可能正在重新连接。但是,在数据完整性/服务器可靠性方面,我实现这一目标的尝试已被证明有点错误和不可预测。

目前,我选择在您输入时只使用像StackOverflow这样的the beforeunload event。它不是可定制的,也不像透明的重新加载/重新连接那样友好,但有时候当你只想警告用户他们为什么不想立即刷新时,这是最好的妥协。