flow: As a website visitor I want to have a usable website even after my session expired or the UI was closed
As a website visitor it’s likely that your session will expire or the UI will be closed or the client-side is disconnected because of other reasons. As we disabled all kinds of confusing notifications the user will never know about the website’s state.
Unfortunately, this also means that the user expects the page to be fully functional. So, he/she may try to login and presses buttons. But nothing will happen and the only information you will get is in the dev console: Trying to invoke method on not yet started or stopped application. Which means that the application knows that something is not wrong but just accepts it.
Can’t we just try to reconnect to the server or trigger a page reload. Same behavior as if you would press a (router) link.
About this issue
- Original URL
- State: open
- Created 7 years ago
- Reactions: 2
- Comments: 18 (16 by maintainers)
I’ve spent some time thinking about various use cases around this, and trying to visualize them somehow to get a better understanding of the whole picture.
I ended with a flow diagram (no pun intended) for three use cases, which are the archetypal I identified the last one is not necessarily even directly related to Flow sessions, but it seemed relevant in this context. Feel free to add and disagree with these.
I tried not to be limited by technology and concentrated more on keeping the end user experience in tack. I think I ended up with a proposal that might be technically unfeasible, but I need @pleku, @Legioth and @Artur- to answer that.
I also didn’t yet think what kind of API changes this might mean, what would be left as the developer’s responsibility.
I think the current Flow behavior is somewhere between cases 1 and 2, and that’s the reason why it feels odd.
Diagram source: https://drive.google.com/file/d/1nG4VMtffwD2Yzjx-rso-JmgPkIN49TJu/view?usp=sharing
A more rough ideation document I used (in case you want some more food for thought): https://www.figma.com/file/aipLqwnRqAGaWqWx5VAIaDBi/Flow-system-message-scenarios
PS. I noticed while testing the behavior on ticketmaster.com, that Safari seems to stop client-side timers/rendering in some cases when the page is in the background. Possibly something to keep in mind when designing the implementation.
In my experience with FW8, most of the times the “Session Expired” popup was shown a silent new session wouldn’t had hurt and could have saved the user from a forced reload. Also, we have apps displayed on video-walls to show charts and dashboards, where there is literally no user (and no keyboard) so when a session expires we need to log on the video-wall system and force a reload on every screen, where a silent new session would be fine.
The desired UX is quite much influenced by what type page the user is looking at, and whether there has actually been any data entered or not. Thus it could be really nice to be able to configure this on view-by-view base or even dynamically depending if there are any changes.
I think the “take note of all changes and reload” notification is not the best UX when there is really nothing done and instead the user would just want to continue using the app without being forced to think.