browser navigation and RIAs..

bear w/ some early (and wishful) thinking …

I have a great RIA, with navigation inside of it (i.e. its own menus and scene transitions in the RIA).

My challenge is that I took advantage of the RIA’s stateful model to optimize the experience; in other words, I avoided request-response; I do load new scenes, but of course it is all inside the RIA …

The problem is that I often find myself clicking "Back" button… and there fore losing the state in the RIA… AAARGHHHH!!

What are the best practices for this type of app? I would love to see an app that handles this gracefully…   If you wrote one, please feel free to email me or leave a URL in the comments.. 

My best answer so far is save state often so I can come back to it.. but I have a lot of challenges (like trying to differentiate between new requests, desired reloads, etc. quite messy )

— ————— —————-

In the mean time, here is a quick (not thoroughly fleshed) wish list for all browsers… 

1) Can browsers expose a "Confirm back/forward"  event for user to confirm this is what they wanted to do…

What I want is when my HTML page is loaded, and before it loads my plug-in, the browser gets told, please ask user to Confirm if they click (go back/ go forward)..

I am not saying ‘ignore the users command, but allow the plug-in to let the browser know it is a RIA and ask user to Confirm when mixing navigation.. The browser can handle the confirmation, to prevent annoying session hi-jacking, which btw I see on plain standards-based sites, so I assume is doable regardless of a Confirm.  

Yes, I know some people will find it confirmation annoying, but I think it would be up to the application provider to decide..  The user or consumer is still in control – when I go to a website that annoys me, I just don’t go back-.  Confirm is an ‘opt-in’ behavior.

2) While I am dreaming, could the browser allow "Trusted sites" to manipulate the history? Maybe an extra journal and Back button for within the RIA?  This way I can enter entries into the Journal and users follow their known paradigm …  but with in the context of the app they are running.. {which I believe is what customers would want a large % of the time}

[ I am not saying replace Back button, I am saying offer more options; user still in control, we have this w/ active documents merging menus with their hosts ]

Thoughts??  I am sure lots a people will laugh and think I am naive about browser session hijacking, etc..  I am cool with that.. I leave it to smarter people ( e.g. IE team or w3c ) to figure how to nail the details; I still think the functionality is a nice to have and I am thinking the problem is solvable elegantly if the browsers or w3 define a standard approach..   

Does what I need exist already??  
I know smart client gets around this.. but I am trying to stay web (plus a small plug-in like Silverlight ) so bear with me…

Thanks & sorry for rambling or rant… it was in my head today and I did not seem to crack it..

Comments (4)

  1. deepu_verma says:

    Adobe Flex has this thru deep linking and history management

  2. mnegrini says:

    Hey Jaime, this library targets Flash, but I think it would work well with Silverlight too:

  3. Thanks Marcelo, Deepu, and all else that replied..  Very much appreciated!

    For those wanting non-flash links,

    NikhilK had an AJAX implementation at has also a SL deeplinking called netaddress