This is a migrated thread and some comments may be shown as answers.

Unconditionally firing a callback with Router.navigate

7 Answers 142 Views
SPA
This is a migrated thread and some comments may be shown as answers.
mgs
Top achievements
Rank 1
mgs asked on 18 Mar 2013, 12:11 PM
It seems, as if Router.navigate would not fire the callback, if the route is already active. I prefered if this were different. Router.navigate should aways fire the callback. This would similar to refreshing a traditional HTML Page, although the anchor's href points to the current page.

Michael G. Schneider

7 Answers, 1 is accepted

Sort by
0
Petyo
Telerik team
answered on 18 Mar 2013, 04:16 PM
Hello Michael,

Thank you for your feedback. The router callback internal implementation is based on the hashchange event, so such change would be a breaking one for Kendo UI Mobile (which also uses the router). If, however, other people share the same feedback, we will consider introducing such option. 

All the best,
Petyo
the Telerik team
Join us on our journey to create the world's most complete HTML 5 UI Framework - download Kendo UI now!
0
mgs
Top achievements
Rank 1
answered on 18 Mar 2013, 05:46 PM
Hello Petyo,

thanks a lot for the answer. I wouldn't mind, if Kendo UI Mobile and Kendo UI Web differed. I think it is more important that Kendo UI Web SPA behave in a way that the end user expects.

Currently it might happen that the end user clicks some menu entry or a button, and nothing happens. Maybe he wanted to perform a refresh and reload the page.

You might change the behaviour without a breaking change. You might add an additional parameter to Route.Navigate. Or you might create a new method Router.reload. Or you might create a new method "here is a route as a string, give me back the callback function".

I do know that even today I can achieve what I want. I might create a fake parameter in the route that changes constantly. Something like a timestamp value that is used for avoiding caching problems. However, it would be cleaner if Kendo UI Web handled that.

Michael G. Schneider
0
Petyo
Telerik team
answered on 19 Mar 2013, 05:49 AM
Hi Michael,

Thank you for sharing your concerns. You may also consider suggesting this enhancement in our UserVoice portal, so that other people can vote for it, too. 

Regards,
Petyo
the Telerik team
Join us on our journey to create the world's most complete HTML 5 UI Framework - download Kendo UI now!
0
mgs
Top achievements
Rank 1
answered on 20 Mar 2013, 10:57 AM
Hello Petyo,

thanks a lot for the answer. I think that UserVoice is not the best choice for finding an answer in this case. I think it is more a question of "right or wrong" which should be discussed in the team.

  • The question is simple: is the current behaviour correct for web applications? Does the user, who is used to navigating with links, expect this behaviour?
  • When answering the above question, you should not look to much at Mobile. Web and Mobile are similar, but they are not the same. Especially with navigation there are some differences. For example, with a web application you usually have a menu system from which you can reach all parts of the application. And this menu is always visible, so would always have one non-reacting link.
  • Or think of a web application, having a dashboard as the start screen. Then the application image (the one usually in the top left corner), which is linked to the start screen, which the user wants to use for refreshing the dashboard, becomes non-reacting.
Thanks a lot for discussing this in the team.

Michael G. Schneider
0
Petyo
Telerik team
answered on 20 Mar 2013, 11:09 AM
Hello Michael,

A common pattern and a globally recognized good UI practice is not to have a link to the same page (refer to the first point in this list by the recognized UX expert Jakob Nielsen). Given that, if you need a refresh current state functionality, it makes sense to take a different approach.

Regards,
Petyo
the Telerik team
Join us on our journey to create the world's most complete HTML 5 UI Framework - download Kendo UI now!
0
mgs
Top achievements
Rank 1
answered on 20 Mar 2013, 12:04 PM
Hello Petyo,

thanks a lot for the answer. I do know Avoid Within-Page Links from 2006. Maybe this article would be written different, today. As far as I understand it, if you take it serious, all navigation within an SPA should be avoided.

But I do not want to discuss this theoretically. I only have the end users of my applications in mind. And if Telerik says that they do not like my considerations, this is perfectly ok with me. There are ways to achieve what I want.

As a last example, look at PanelBar / Animation effects. Change some the "Animation Settings". Then click on "Animation effects" in the left navigation bar. Isn't it strange that nothing happens? Wouldn't you also expect the settings to be reset to their default values?

Michael G. Schneider
0
Accepted
Petyo
Telerik team
answered on 22 Mar 2013, 08:29 AM
Hello Michael,

Once again, thank you for the feedback you have provided during our beta release. Sharing your considerations and providing use cases gives us food for thought. With each release, we regularly introduce features and changes based on such customer demand, even in cases where our initial implementation was done with a different approach in mind. 

As for the discussion, I would like to share an approach which may be useful for users who need their route to be re-evaluated each time the user clicks a certain link - a 'timestamped' URL. Something along the lines of 

<a href="#foo" onclick="location.href = this.href + '?' +new Date()">Inbox</a>

You can also update the element href attribute each time the view is navigated to, in order to provide the user with a feedback in the status bar when the link is hovered. 

Kind regards,
Petyo
the Telerik team
Join us on our journey to create the world's most complete HTML 5 UI Framework - download Kendo UI now!
Tags
SPA
Asked by
mgs
Top achievements
Rank 1
Answers by
Petyo
Telerik team
mgs
Top achievements
Rank 1
Share this question
or