Your Privacy Matters: We use our own and third-party cookies to improve your experience on our website. By continuing to use the website we understand that you accept their use. Cookie Policy
167
Performance issue - UltraWebGrid & IE8
posted

Hi

I've the code of an old version of the infragistics suite (v2007.3) and I've found a very weird performance problem that arises when using IE8.

I'm reporting it because it is occurring also in your demo site that is using the version 2009.1, but I don't know if this problem has been solved in the hotfix you have released for the 2009.1.

The problem is in this javascript procedure: file 'ig_webgrid_dom.js', function "init" contained in object igtbl_ptsRow. The actual problem is this line of code

 

tr.cells[j].id = cellId.join(

"_");

That line of code (the setting of the id of a cell) is very very very slow under IE8, but has no impact with IE7.

Can you tell me whether this issue has been solved in v2009.1 hotfix?

Is the source code of the hotfix available upon buying v2009.1?

Best regards, Andrea Pirola

 

 

Parents
No Data
Reply
  • 818
    Suggested Answer
    posted

    We ran into this issue as well, but our primary problem was the incredibly poor performance when the user performed client-side actions such as sorting or filtering (even after installing the July hotfix). Using the research by the original poster regarding the increase in performance when the table did not contain a colgroup element, we devised a workaround that causes a slight delay on the initial load, but resolves all other performance issues, including situations where the grid is contained in an Ajax update panel.

    The basic approach is to save the colgroup element in the table, remove it, ask the grid to generate all row ids, then restore the colgroup element. Executing this code at the end of igtbl_initGrid handles all scenarios that we have tested. For those that are interested, here is the code that we used to work around the problem:

    function InitializeGridIds(oGrid) {
        try {
            var oChild = oGrid.Element.childNodes[0];
            try {
                oGrid.Element.removeChild(oChild);

                for (var nI = 0; nI < oGrid.Rows.length; nI++) {
                    var oRow = oGrid.Rows.getRow(nI);
                }
            } finally {
                oGrid.Element.insertBefore(oChild, oGrid.Element.childNodes[0]);
            }
        } catch (ex) {
            alert(ex.message);
        }
    }

    We modified the end of igtbl_initGrid as follows:

        igtbl_getElementById(grid.ClientID).control = grid;

        // Ensure the grid ids are properly initialized
        InitializeGridIds(grid);

        return grid;

Children