v14.2
We have an igGrid in an igDialog. We have checkboxes that select groups which populate the grid. Each group contains anywhere from 4 - 100 items. We are running into performance issues when there are a lot of items in the grid - say more than 50. Paging is disabled because it confuses our users if a group overlaps to another page (the number of items).
I've done some internal debugging and I've isolated the issue to this method in the module:
_trackFocus()
If this method is called, it causes a timeout function to do some work every 200 milliseconds which is causing the screen to repaint VERY SLOWLY - indefinitely. From my testing, removing this call doesn't impact any functionality that we need and it prevents the performance issue.
We are trying but it will take us some time to create a sample reproducing this in an isolated sample. In the meantime, is there a work around to using igDialog without the overhead over focus tracking? I've searched but I haven't found any similar issues.
(Thoughts?)
I've fixed it for now until I want to dedicate additional time to find the underlying cause. We are still open to feedback but as a temporary measure we did the following:
var dialog = $(.selector).data("igDialog");
dialog._trackFocus = $.noop;
$(.selector).igDialog("open");
Performance is outstanding.
Hello,
I am still following up. Have you been able to resolve the issue?If you have any concerns or questions, please feel free to contact me, I will be glad to help you.Thank you for choosing Infragistics components!
I've modified the example you gave me with a test scenario based on how we are using your controls.
REPRODUCTION STEPS:
1. The screen will load - an igdialog will open. At the moment, performance is great.2. Click on the search button. The grid will load with data.3. At this point the performance will suffer.
Try clicking in a quick manner on the control text boxes or trying to expand the groups in the grid. There IS a noticeable lag. Try clicking 20 times within 3 seconds on some of the controls and it will queue the clicks up.
SOLUTION:
In the file on line 47 - our internal fix to the problem is commented out. Include our fix and perform the same test. No more lag and the UI is VERY responsive.
WHAT ELSE WE'VE NOTICED:
The more records that are present in the grid, the more it lags. So if you check only "HEATING AND FANS" then the response time is good. But the more you add, the slower it gets.
Also if we comment out the grid's databind method, the performance is still great.
Issue is still present in the newest 14.2 service release that went out last week.
Performance is severely impacted and is reduced to 1 FPS. This metric was gathered looking at debugger controls in IE, FF and CHROME.
Let me know if you require anything else.
thanks,
There is a rogue debugger statement on line 66 that you should remove prior to testing...sorry!
Never mind - I lied.
The issue happens in FF but only for about 2 seconds then the performance is great again. In IE the performance issues linger indefinitely from what I can tell.
Hello Karthik,
I tried this in both FF (latest version) and IE11 and also in Chrome and I didn't notice anything like this.
What machine are you testing this on? Is it happening on all kinds of machines?
What I did was to run the file you attached and performed the steps you described, nothing else.
I've attached the same test but I used camtasia to record my findings. I've included the before and after changes to the code to demonstrate the slowdown. The test was ran in IE 11.
Hello all,
In order to assist everybody hitting this thread, I just want to let you know what our dev team has responded with: "In case of trackFocus enabled both focus and blur handlers are attached. It's not preferred to have this option set to true when a lot of DOM elements are attached inside the dialog, because it may cause performance issues. In case of igHierarchicalGrid a lot of cells get rendered and to all of them dialog attaches focus and blur handlers which causes performance issues. In that case it is suggested to set trackFocus property to false. "
Perfect, thank you!
Hi,
I saw the issue, thank you!
We are going to research this, in the meantime please set the trackFocus option to false http://www.igniteui.com/help/api/2015.1/ui.igDialog#options:trackFocus.
I am going to link this issue to case CAS-156798-H4X8N4 which should be visible in your account on our website.