I am using the ReorderList control from the AJAX Control Toolkit on my fantasy cheat sheet creation site. It appears I am running into some concurrency issues related to fast reordering:
1. If I reorder items slowly (say give a second between each reorder), there is never a problem.
2. If I reorder quickly (say move a record once, then again within a second or so) only the first ordering operation is performed, the second operation is ignored, and ALL FURTHER REORDERING IS IGNORED UNTIL THE PAGE IS RELOADED.
Obviously something is getting locked-up if I reorder quickly. An important note is that this only seems to be occurring in production on a shared hosting account. On my local machine I can go as fast as I want without a problem. It would seem to be that
each reorder request would simply get queued, but apparently that isn't the case.
The code being executed on reorder is as such:
/// <summary>
/// This method is fired each time the items are reordered
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void rolReorderList_ItemReorder(object sender, ReorderListItemReorderEventArgs e)
{
// issue the reorder call to the business layer
if (this.User.Identity.IsAuthenticated)
{
// we know the id of the sheet is determined by the dropdownlist
CheatSheet.ReorderCheatSheetItems(int.Parse(ddlAvailableSheets.SelectedValue), e.OldIndex, e.NewIndex);
// once the user reorders once, we note that they no longer need to see the instructional message
Profile.SiteSettings.FiguredOutReordering = true;
}
else
{
// we know the id of the sheet by what is stored in a session variable
CheatSheet.ReorderCheatSheetItems((int)Session[MySession.CurrentSportCode + "_" + MySession.GetCurrentVisitorSheetPosition(MySession.CurrentSportCode)], e.OldIndex, e.NewIndex);
// once the visitor reorders once, we note that they no longer need to see the instructional message
MySession.FiguredOutReordering = true;
}
}
You can see a demo here.
Thanks.
If you perform a postback after reordering, then at server side requests may not be processed promptly. You may use tools to see requests and response over the network. If you are in Chrome, try F12 -> network panel, see when you are ordering what requests
are sent and what responses you get, see what HTTP code they've got and see if this is a server side error.
pinch
Member
36 Points
62 Posts
Fast Reordering in ACT ReorderList Breaks Further Ordering
Feb 20, 2012 05:08 PM|LINK
I am using the ReorderList control from the AJAX Control Toolkit on my fantasy cheat sheet creation site. It appears I am running into some concurrency issues related to fast reordering:
1. If I reorder items slowly (say give a second between each reorder), there is never a problem.
2. If I reorder quickly (say move a record once, then again within a second or so) only the first ordering operation is performed, the second operation is ignored, and ALL FURTHER REORDERING IS IGNORED UNTIL THE PAGE IS RELOADED.
Obviously something is getting locked-up if I reorder quickly. An important note is that this only seems to be occurring in production on a shared hosting account. On my local machine I can go as fast as I want without a problem. It would seem to be that each reorder request would simply get queued, but apparently that isn't the case.
The code being executed on reorder is as such:
/// <summary> /// This method is fired each time the items are reordered /// </summary> /// <param name="sender"></param> /// <param name="e"></param> protected void rolReorderList_ItemReorder(object sender, ReorderListItemReorderEventArgs e) { // issue the reorder call to the business layer if (this.User.Identity.IsAuthenticated) { // we know the id of the sheet is determined by the dropdownlist CheatSheet.ReorderCheatSheetItems(int.Parse(ddlAvailableSheets.SelectedValue), e.OldIndex, e.NewIndex); // once the user reorders once, we note that they no longer need to see the instructional message Profile.SiteSettings.FiguredOutReordering = true; } else { // we know the id of the sheet by what is stored in a session variable CheatSheet.ReorderCheatSheetItems((int)Session[MySession.CurrentSportCode + "_" + MySession.GetCurrentVisitorSheetPosition(MySession.CurrentSportCode)], e.OldIndex, e.NewIndex); // once the visitor reorders once, we note that they no longer need to see the instructional message MySession.FiguredOutReordering = true; } } You can see a demo here. Thanks.BU XI - MSFT
All-Star
22367 Points
2704 Posts
Microsoft
Re: Fast Reordering in ACT ReorderList Breaks Further Ordering
Feb 22, 2012 12:35 AM|LINK
Hello
If you perform a postback after reordering, then at server side requests may not be processed promptly. You may use tools to see requests and response over the network. If you are in Chrome, try F12 -> network panel, see when you are ordering what requests are sent and what responses you get, see what HTTP code they've got and see if this is a server side error.
If you have any feedback about my replies, please contact msdnmg@microsoft.com.
Microsoft One Code Framework