Load Performance and handel Load Time

2 posts, 0 answers
  1. samin
    samin avatar
    27 posts
    Member since:
    Feb 2011

    Posted 29 May 2012 Link to this post

    I use this control to show a number of appointment in its view.
    on average ( Day=400 app,Week=1400 app and Month=6000 app).

    my major process is mentioned as below:

    A- loading appointment objects List as datasource( 1 or 2 second )
    B- assigning this list to RadScheduleView.AppointmentSource and wait to display all appointment( more than 10 second )

    I use busyIndicator to manage UI for Case (A) but it's very short. but for Case(B) I can't do anything to deal with my application UI.
    So user get confused. and do some action and sometimes application crashs.

    how can I manage the time between assigning Appointments to RadScheduleView and finishing its prepration process to show them?
  2. Lancelot
    Lancelot avatar
    251 posts
    Member since:
    Jul 2012

    Posted 31 May 2012 Link to this post

    Hi Samin,

    My following solution for you is if you can't decrease the loading time. It is a way to keep the user engaged without them trying to use the UI before the data is loaded. (Is this long loading time is for only the first time the user loads the app? You should be storing this data locally so that when they reenter the app in the future, it is immediately available).

    Create a completed event handler for Case A, where when Case A is done loading a Modal Window is opened (you just set the visibility of the window like this ModalWindow.Visibility = Visibility.Visible;). The Modal Window allows the user to see the UI behind it but can't interact with it. There is only the window's contents in focus. what you place in the modal windows could a welcome message or a quick "How To" message.

    You should also have a completed event for Case B. When the data is finished loading for Case B the event fires and then presents the user with a "Continue" or "Close" button in the modal window. You would place a Button in the modal window set to IsEnabled="False". When Case B is done loading, just fire off Button.IsEnabled="True" (The event handler for the button would execute ModalWindow.Visibility = Visibility.Collapsed; ).  Or just close the modal window when Case B is done, but that wouldnt give the user the chance to read your message.

    So basically what this does is keeps the user busy for the ten seconds or so it takes for Case B, and prevents them from feeling locked out until the data is ready. There will be a feeling of continuity and the modal window is the bridge between Case A and Case B.

    I hope this helps, Good Luck!

Back to Top