Controlling load order of dynamic AJAX usercontrols
I have built a "portal" that displays "widgets" (server side usercontrols). The page contains two columns, each containing an updatepanel. Each widget contains an updatepanel and multiview with the default view showing a "loading" message and the second view contains the actual content.
When a user logs in, I query the database to get a list of widgets the user has access to, along with their column and order number. During page init, I add all of the widgets to the page's columns in the order indicated. Once the page loads, a timer on each widget gets fired and the widget's multiview switches from the "loading" view to the content view and sets the content's visibility to true. This forces the content to load.
Setting up the load this way makes the page load appear faster because it doesn't process any of the widget data until after the initial page load. This all works fine but I have an issue with the order in which the widgets get loaded.
Currently, the page loads and the widgets will start loading from the top of the left column down to the bottom, then it will start loading the top of the right column. The page could potentially have many widgets so I end up staring at a bunch of loading messages on the right side while I wait for the full left column to load. I would really like to be able to load top down across both columns instead of the whole left column and then the right column. For e开发者_C百科xample, load the first widget in the left column, then the first in the right, and so on. This way, the user would have something to look at the top instead of staring at a bunch of loading messages and having to scroll down the page while it loads.
Sounds to me like you need to change the load order in the page_init such that it does:
- col 1, widget 1
- col 2 widget 1
- col 1, widget 2
- col 2, widget 2
- etc
精彩评论