This question is locked. New answers and comments are not allowed.
I am stress testing my page.
I have about 8 grids on a single page.
Each use the same process of receiving data. I am using Ajax for with CustomBinding to getdata.
I have created an event on a row that if I double click it opens a new page, which also can contain about 8 grids.
All these grids follow the exact pattern for retrieving data as well. I have noticed in InternetExplorer only that sometimes the grids
fail to load in a reasonable amount of time.
The scenario to recreate the problem is:
Open the initial page let the page completely load.
Double click on a row which causes a child page to open containing multiple grids.
Close this child window before the page is completely loaded.
Then back on the parent page, double click on a row again to get a child window to open again.
Repeat the above three lines and within a couple times, the child window lags extremely loading data.
It pretty much just sits there trying to load the page. It is almost like IE can't handle all the Ajax requests and even is still trying to complete a previous on that I have closed out. The page may or maynot render, one time it took 10 minutes.
Is there a way to queue up the ajax calls so IE isnt just slammed? I have also tested this in Firefox 4, the problem does not happen here. It works perfectly. So it has to be an IE thing.
Please let me know what I can do to resolve this issue.
Here is the pattern that every grid follows:
And my Action:
I have about 8 grids on a single page.
Each use the same process of receiving data. I am using Ajax for with CustomBinding to getdata.
I have created an event on a row that if I double click it opens a new page, which also can contain about 8 grids.
All these grids follow the exact pattern for retrieving data as well. I have noticed in InternetExplorer only that sometimes the grids
fail to load in a reasonable amount of time.
The scenario to recreate the problem is:
Open the initial page let the page completely load.
Double click on a row which causes a child page to open containing multiple grids.
Close this child window before the page is completely loaded.
Then back on the parent page, double click on a row again to get a child window to open again.
Repeat the above three lines and within a couple times, the child window lags extremely loading data.
It pretty much just sits there trying to load the page. It is almost like IE can't handle all the Ajax requests and even is still trying to complete a previous on that I have closed out. The page may or maynot render, one time it took 10 minutes.
Is there a way to queue up the ajax calls so IE isnt just slammed? I have also tested this in Firefox 4, the problem does not happen here. It works perfectly. So it has to be an IE thing.
Please let me know what I can do to resolve this issue.
Here is the pattern that every grid follows:
@(Html.Telerik().Grid(Model.Data) .Name(Model.GridID) .DataKeys(k => k.Add(o => o.ResultId)) .DataBinding(d => d.Ajax().Select("GetModelData", "MyController")) .EnableCustomBinding(true) .Columns(columns => { columns.Bound(o => o.Name) .Title("Name") .Width("30%"); columns.Bound(o => o.Age).Title("Age").Width("10%")); columns.Bound(o => o.Email).Title("Email(s)").Width("20%")); }) .Scrollable(s => { s.Enabled(true).Height(ViewBag.GridHeight); }) .Selectable() .Resizable(r => r.Columns(true)) .Sortable() .ClientEvents(e => { e.OnLoad("onLoad"); e.OnDataBinding("onDataBinding"); e.OnDataBound("onDataBound"); e.OnRowSelect("onRowSelect"); }) )
And my Action:
[ValidateInput(false)] [GridAction] public ActionResult GetModelData(GridCommand command, string pageNumber, string pagingToken, string q, string order, string member, string type, string gridid) { var model = GetBaseGridModel(pageNumber, pagingToken, q, order, member, type, gridid); if (model != null) { Session[gridid] = model; Type modelType = model.GetType(); PropertyInfo dataProperty = modelType.GetProperty("Data"); var data = dataProperty.GetValue(model, null) as IEnumerable; return View(new GridModel() { Data = data, Total = model.NumberOfRecords }); } return View(new GridModel()); }