Announcement

Collapse
No announcement yet.
X
  • Filter
  • Time
Clear All
new posts

  • tomhj
    replied
    In my original 1.5.3 sample app, there is no DOCTYPE declaration in .html file.

    For the 2.0.4 sample app, I used the Google Eclipse plug-in to generate the sample app and then just plugged in my ListGridTest code. In the case, there was a <!doctype html> entry in the .html file. I commented it out and it did not change the behavior in IE - still fails.

    Are you able to reproduce the problem with the sample code I gave?

    Leave a comment:


  • Isomorphic
    replied
    Do you have a DOCTYPE declaration? We recommend not having one, and in this case what may be happening is that IE is not respecting the size of some very taller spacer elements we're using to create the scrollable region.

    Also note, as far as "script running slowly" dialogs, for a dataset this large being shown in IE, you may want to use the "progressive loading" approach described under the ResultSet docs. IE's "slow script" detection is completely broken - it can be triggered in under 0.2 seconds on a recent machine, and optimizations that make code faster can actually cause the dialog to be triggered sooner.

    Leave a comment:


  • tomhj
    replied
    I noticed another difference in the sample app running in IE vs Firefox or Chrome. In IE when I drag the scroll thumbnail down, it doesn't stay where I drop it - it moves back up a bit (not to the original drag start location though). The farther down I drag the thumbnail, the farther off it moves after the drop. For Firefox and Chrome, the thumbnail stays exactly where I drop it.

    Not sure if that is significant or not.

    Leave a comment:


  • tomhj
    replied
    Ok - fair enough.

    I moved the sample program to GWT 2.0.4 - the behavior is exactly the same. Works perfectly in FireFox and Chrome - but not with IE8.

    It sure seems to be a problem with the ListGrid and IE.

    Leave a comment:


  • Isomorphic
    replied
    While the most likely explanation remains that it's a GWT issue, this won't be looked at, so it's probably worth your time to establish whether this would occur with the latest GWT.

    Or, just purchase support.

    Leave a comment:


  • tomhj
    replied
    This problem happens in production deployments as well as hosted mode. Sorry for not mentioning that before.

    Upgrading from GWT 1.5.3 is not an option as we are a few weeks from releasing this version of the product.

    Leave a comment:


  • Isomorphic
    replied
    This probably only occurs in hosted mode and is most likely a core GWT issue - try upgrading from 1.5.3.

    Leave a comment:


  • tomhj
    replied
    I was able to duplicate the problem with a trivial sample program.

    The 'client' code is:
    Code:
    package com.rg.listgridtest.client;
    
    import com.google.gwt.core.client.EntryPoint;
    import com.google.gwt.core.client.GWT;
    import com.smartgwt.client.data.DataSourceField;
    import com.smartgwt.client.data.RestDataSource;
    import com.smartgwt.client.data.fields.DataSourceIntegerField;
    import com.smartgwt.client.util.SC;
    import com.smartgwt.client.widgets.grid.ListGrid;
    import com.smartgwt.client.widgets.grid.ListGridField;
    import com.smartgwt.client.widgets.grid.events.DataArrivedEvent;
    import com.smartgwt.client.widgets.grid.events.DataArrivedHandler;
    
    public class ListGridTest implements EntryPoint
    {
    	public void onModuleLoad() 
    	{
    	    ListGrid grid = new ListGrid();
    	    
    	    RestDataSource ds = new RestDataSource();
    	    DataSourceField num = new DataSourceIntegerField("num");
    	    ds.setFields(num);
    	    ds.setDataURL("GetData");
    
    	    grid.setHeight100();
    	    grid.setWidth100();
    	    grid.setAutoFetchData(true);
    	    grid.setShowAllRecords(false);
    	    grid.setDataSource(ds);
    	    
    	    ListGridField numField = new ListGridField("num");
                ListGridField contentField = new ListGridField("content");
                ListGridField infoField = new ListGridField("info");
    	    grid.setFields(numField, contentField, infoField);
    	    
    	    grid.addDataArrivedHandler(new DataArrivedHandler() {
    
                    public void onDataArrived(DataArrivedEvent event)
                    {
                        GWT.log("Data arrived:  startRow=" + event.getStartRow() + ", endRow=" + event.getEndRow(), null);
                    }
    	        
    	    });
    
                SC.showConsole();
    	    grid.draw();
    	}
    }
    The 'server' code is:
    Code:
    package com.rg.listgridtest.server;
    
    import java.io.IOException;
    import java.io.PrintWriter;
    import java.util.Date;
    
    import javax.servlet.ServletException;
    import javax.servlet.http.HttpServlet;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    
    public class GetData extends HttpServlet
    {
        @Override
        protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException
        {
            resp.setContentType("application/xml");
            resp.setCharacterEncoding("UTF-8");
            PrintWriter writer = resp.getWriter();
    
            int startRow = getInteger(req, "_startRow", 0);
            int endRow = getInteger(req, "_endRow", 0);
            System.out.println(new Date() + " - " + Thread.currentThread().getName() + " GetData called with startRow=" + startRow + ", endRow=" + endRow);
            
            writer.println("<?xml version=\"1.0\" encoding=\"UTF-8\"?>");
            
            writer.println("<response>");
            
            int rowsWritten = 0;
        
            writer.println("\t<status>0</status>");
            writer.print("<startRow>");
            writer.print(startRow);
            writer.println("</startRow>");
            writer.print("\t<endRow>");
            writer.print(endRow);
            writer.println("</endRow>");
            writer.print("\t<totalRows>");
            writer.print(1500000);
            writer.println("</totalRows>");
            writer.print("<data>");
    
            for (int i = startRow; i <= endRow; i++)
            {
                writer.print("\t<record>");
                writer.print("<num>");
                writer.print(i);
                writer.print("</num>");
                writer.print("<content>Some content goes here</content>");
                writer.print("<info>Some info goes here</info>");
                writer.println("</record>");
                
                rowsWritten++;
            }
            
            writer.println("</data>");
    
            writer.println("</response>");
            writer.flush();
            writer.close();
            System.out.println(new Date() + " - " + Thread.currentThread().getName() + " done after writing " + rowsWritten + " rows");
        }
    
        private int getInteger(HttpServletRequest req, String parmName, int defValue)
        {
            String value = req.getParameter(parmName);
            if (value == null)
                return defValue;
            
            return Integer.parseInt(value);
        }
    
    }
    and for completeness, the gwt.xml file is:
    Code:
    <module>
    	<inherits name="com.google.gwt.user.User"/>
    	<inherits name="com.smartgwt.SmartGwt"/>
            <inherits name="com.smartclient.tools.SmartClientTools"/>
    	<entry-point class="com.rg.listgridtest.client.ListGridTest"/>
    	<servlet path="/GetData" class="com.rg.listgridtest.server.GetData"/>
    </module>
    With this code, the grid handles the initial display of rows 0 - 75. Then I can scroll down and the grid handles the display of rows 48,467 - 48,542. But when I scroll down farther, I see the fetching of rows 90,709 - 90,784 and ListGrid locks up. The GWT hosted mode dev shell window shows these messages:

    - Starting HTTP on port 8888
    - Data arrived: startRow=0, endRow=75
    - Data arrived: startRow=48467, endRow=48542
    - Data arrived: startRow=90709, endRow=90784

    After the SmartClient console opened, I adjusted the log levels for RPCManager - Info, and ResultSet - Info. I then performed the first scroll (which worked) and the second one much farther down (which didn't work). The Log Messages panel shows this:

    Code:
    23:24:28.458:INFO:Log:initialized
    23:24:28.536:WARN:AutoObserver:Use addInterfaceProperties() to add methods to interface [Class AutoObserver]
    23:24:28.676:INFO:Log:isc.Page is loaded
    Global Log Priorities updated: Logging messages at priority 'Info' and above for category 'RPCManager'.
    Global Log Priorities updated: Logging messages at priority 'Info' and above for category 'ResultSet'.
    23:24:54.404:RDQ1:INFO:ResultSet:isc_ResultSet_0 (created by: isc_OID_0):getRange(48495, 48496) will fetch from 48458 to 48532
    23:24:54.404:RDQ1:INFO:ResultSet:isc_ResultSet_0 (created by: isc_OID_0):getRange(48495, 48515) will fetch from 48467 to 48542
    23:24:54.606:RDQ6:INFO:ResultSet:isc_ResultSet_0 (created by: isc_OID_0):getRange(48492, 48518) will fetch from 48467 to 48542
    23:24:54.918:TMR8:INFO:ResultSet:isc_ResultSet_0 (created by: isc_OID_0):fetching rows 48467,48542 from server
    23:24:54.964:TMR8:INFO:RPCManager:sendQueue[1]: 1 RPCRequest(s); transport: xmlHttpRequest; target: GetData
    23:24:54.980:XRP3:INFO:RPCManager:transaction 1 arrived after 16ms
    23:24:54.980:XRP3:INFO:RPCManager:rpcResponse(unstructured) results -->"<?xml version="1.0" encoding="UTF-8"?>
    <response>
    	<status>0</status>
    <startRow>48467</startRow>
    	<endRow>48542</endRow>
    	<totalRows>1500000</totalRows>
    <data>	<record><num>48467</num><content>Some content goes here</content><info>Some info goes here</info></record>
    	<record><num>48468</num><content>Some content goes here</content><info>Some info goes here</info></record>
    	<record><num>48469</num><content>Some content goes here</content><info>Some info goes here</info></record>
    	<record><num>48470</num><content>Some content goes here</content><info>Some info goes here</info></record>
    	<record><num>48471</num><content>Some content goes here</content><info>Some info goes here</info></record>
    	<record><num>48472</num><content>Some content goes here</content><info>Some info goes here</info></record>
    	<record><num>48473</num><content>Some content goes here</content><info>Some info goes here</info></record>
    	<record><num>48474</num><content>Some content goes here</content><info>Some info goes here</info></record>
    	<record><num>48475</num><content>Some content goes here</content><info>Some info goes here</info></record>
    	<record><num>48476</num><content>Some content goes here</content><info>Some info goes here</info></record>
    	<record><num>48477</num><content>Some content goes here</content><info>Some info goes here</info></record>
    	<record><num>48478</num><content>Some content goes here</content><info>Some info goes here</info></record>
    	<record><num>48479</num><content>Some content goes here</content><info>Some info goes here</info></record>
    	<record><num>48480</num><content>Some content goes here</content><info>Some info goes here</info></record>
    	<record><num>48481</num><content>Some content goes here</content><info>Some info goes here</info></record>
    	<record><num>48482</num><content>Some content goes here</content><info>Some info goes here</info></record>
    	<record><num>48483</num><content>Some content goes here</content><info>Some info goes here</info></record>
    	<record><num>48484</num><content>Some content goes here</content><info>Some info goes here</info></record>
    	<record><num>48485</num><content>Some content goes here</content><info>Some info goes here</info></record>
    	<record><num>48486</num><content>Some content goes here</content><info>Some info goes here</info></record>
    	<record><num>48487</num><content>Some content goes here</content><info>Some info goes here</info></record>
    	<record><num>48488</num><content>Some content goes here</content><info>Some info goes here</info></record>
    	<record><num>48489</num><content>Some content goes here</content><info>Some info goes here</info></record>
    	<record><num>48490</num><content>Some content goes here</content><info>Some info goes here</info></record>
    	<record><num>48491</num><content>Some content goes here</content><info>Some info goes here</info></record>
    	<record><num>48492</num><content>Some content goes here</content><info>Some info goes here</info></record>
    	<record><num>48493</num><content>Some content goes here</content><info>Some info goes here</info></record>
    	<record><num>48494</num><content>Some content goes here</content><info>Some info goes here</info></record>
    	<record><num>48495</num><content>Some content goes here</content><info>Some info goes here</info></record>
    	<record><num>48496</num><content>Some content goes here</content><info>Some info goes here</info></record>
    	<record><num>48497</num><content>Some content goes here</content><info>Some info goes here</info></record>
    	<record><num>48498</num><content>Some content goes here</content><info>Some info goes here</info></record>
    	<record><num>48499</num><content>Some content goes here</content><info>Some info goes here</info></record>
    	<record><num>48500</num><content>Some content goes here</content><info>Some info goes here</info></record>
    	<record><num>48501</num><content>Some content goes here</content><info>Some info goes here</info></record>
    	<record><num>48502</num><content>Some content goes here</content><info>Some info goes here</info></record>
    	<record><num>48503</num><content>Some content goes here</content><info>Some info goes here</info></record>
    	<record><num>48504</num><content>Some content goes here</content><info>Some info goes here</info></record>
    	<record><num>48505</num><content>Some content goes here</content><info>Some info goes here</info></record>
    	<record><num>48506</num><content>Some content goes here</content><info>Some info goes here</info></record>
    	<record><num>48507</num><content>Some content goes here</content><info>Some info goes here</info></record>
    	<record><num>48508</num><content>Some content goes here</content><info>Some info goes here</info></record>
    	<record><num>48509</num><content>Some content goes here</content><info>Some info goes here</info></record>
    	<record><num>48510</num><content>Some content goes here</content><info>Some info goes here</info></record>
    	<record><num>48511</num><content>Some content goes here</content><info>Some info goes here</info></record>
    	<record><num>48512</num><content>Some content goes here</content><info>Some info goes here</info></record>
    	<record><num>48513</num><content>Some content goes here</content><info>Some info goes here</info></record>
    	<record><num>48514</num><content>Some content goes here</content><info>Some info goes here</info></record>
    	<record><num>48515</num><content>Some content goes here</content><info>Some info goes here</info></record>
    	<record><num>48516</num><content>Some content goes here</content><info>Some info goes here</info></record>
    	<record><num>48517</num><content>Some content goes here</content><info>Some info goes here</info></record>
    	<record><num>48518</num><content>Some content goes here</content><info>Some info goes here</info></record>
    	<record><num>48519</num><content>Some content goes here</content><info>Some info goes here</info></record>
    	<record><num>48520</num><content>Some content goes here</content><info>Some info goes here</info></record>
    	<record><num>48521</num><content>Some content goes here</content><info>Some info goes here</info></record>
    	<record><num>48522</num><content>Some content goes here</content><info>Some info goes here</info></record>
    	<record><num>48523</num><content>Some content goes here</content><info>Some info goes here</info></record>
    	<record><num>48524</num><content>Some content goes here</content><info>Some info goes here</info></record>
    	<record><num>48525</num><content>Some content goes here</content><info>Some info goes here</info></record>
    	<record><num>48526</num><content>Some content goes here</content><info>Some info goes here</info></record>
    	<record><num>48527</num><content>Some content goes here</content><info>Some info goes here</info></record>
    	<record><num>48528</num><content>Some content goes here</content><info>Some info goes here</info></record>
    	<record><num>48529</num><content>Some content goes here</content><info>Some info goes here</info></record>
    	<record><num>48530</num><content>Some content goes here</content><info>Some info goes here</info></record>
    	<record><num>48531</num><content>Some content goes here</content><info>Some info goes here</info></record>
    	<record><num>48532</num><content>Some content goes here</content><info>Some info goes here</info></record>
    	<record><num>48533</num><content>Some content goes here</content><info>Some info goes here</info></record>
    	<record><num>48534</num><content>Some content goes here</content><info>Some info goes here</info></record>
    	<record><num>48535</num><content>Some content goes here</content><info>Some info goes here</info></record>
    	<record><num>48536</num><content>Some content goes here</content><info>Some info goes here</info></record>
    	<record><num>48537</num><content>Some content goes here</content><info>Some info goes here</info></record>
    	<record><num>48538</num><content>Some content goes here</content><info>Some info goes here</info></record>
    	<record><num>48539</num><content>Some content goes here</content><info>Some info goes here</info></record>
    	<record><num>48540</num><content>Some content goes here</content><info>Some info goes here</info></record>
    	<record><num>48541</num><content>Some content goes here</content><info>Some info goes here</info></record>
    	<record><num>48542</num><content>Some content goes here</content><info>Some info goes here</info></record>
    </data>
    </response>
    "<--
    23:24:55.042:XRP3:INFO:ResultSet:isc_ResultSet_0 (created by: isc_OID_0):Received 76 records from server
    23:24:55.042:XRP3:INFO:ResultSet:isc_ResultSet_0 (created by: isc_OID_0):cached 76 rows, from 48467 to 48542 (1500000 total rows, 152 cached)
    23:25:04.044:RDQ8:INFO:ResultSet:isc_ResultSet_0 (created by: isc_OID_0):getRange(90737, 90738) will fetch from 90700 to 90774
    23:25:04.044:RDQ8:INFO:ResultSet:isc_ResultSet_0 (created by: isc_OID_0):getRange(90737, 90757) will fetch from 90709 to 90784
    23:25:04.246:RDQ5:INFO:ResultSet:isc_ResultSet_0 (created by: isc_OID_0):getRange(90734, 90760) will fetch from 90709 to 90784
    23:25:04.558:TMR1:INFO:ResultSet:isc_ResultSet_0 (created by: isc_OID_0):fetching rows 90709,90784 from server
    23:25:04.604:TMR1:INFO:RPCManager:sendQueue[2]: 1 RPCRequest(s); transport: xmlHttpRequest; target: GetData
    23:25:04.651:XRP3:INFO:RPCManager:transaction 2 arrived after 47ms
    23:25:04.651:XRP3:INFO:RPCManager:rpcResponse(unstructured) results -->"<?xml version="1.0" encoding="UTF-8"?>
    <response>
    	<status>0</status>
    <startRow>90709</startRow>
    	<endRow>90784</endRow>
    	<totalRows>1500000</totalRows>
    <data>	<record><num>90709</num><content>Some content goes here</content><info>Some info goes here</info></record>
    	<record><num>90710</num><content>Some content goes here</content><info>Some info goes here</info></record>
    	<record><num>90711</num><content>Some content goes here</content><info>Some info goes here</info></record>
    	<record><num>90712</num><content>Some content goes here</content><info>Some info goes here</info></record>
    	<record><num>90713</num><content>Some content goes here</content><info>Some info goes here</info></record>
    	<record><num>90714</num><content>Some content goes here</content><info>Some info goes here</info></record>
    	<record><num>90715</num><content>Some content goes here</content><info>Some info goes here</info></record>
    	<record><num>90716</num><content>Some content goes here</content><info>Some info goes here</info></record>
    	<record><num>90717</num><content>Some content goes here</content><info>Some info goes here</info></record>
    	<record><num>90718</num><content>Some content goes here</content><info>Some info goes here</info></record>
    	<record><num>90719</num><content>Some content goes here</content><info>Some info goes here</info></record>
    	<record><num>90720</num><content>Some content goes here</content><info>Some info goes here</info></record>
    	<record><num>90721</num><content>Some content goes here</content><info>Some info goes here</info></record>
    	<record><num>90722</num><content>Some content goes here</content><info>Some info goes here</info></record>
    	<record><num>90723</num><content>Some content goes here</content><info>Some info goes here</info></record>
    	<record><num>90724</num><content>Some content goes here</content><info>Some info goes here</info></record>
    	<record><num>90725</num><content>Some content goes here</content><info>Some info goes here</info></record>
    	<record><num>90726</num><content>Some content goes here</content><info>Some info goes here</info></record>
    	<record><num>90727</num><content>Some content goes here</content><info>Some info goes here</info></record>
    	<record><num>90728</num><content>Some content goes here</content><info>Some info goes here</info></record>
    	<record><num>90729</num><content>Some content goes here</content><info>Some info goes here</info></record>
    	<record><num>90730</num><content>Some content goes here</content><info>Some info goes here</info></record>
    	<record><num>90731</num><content>Some content goes here</content><info>Some info goes here</info></record>
    	<record><num>90732</num><content>Some content goes here</content><info>Some info goes here</info></record>
    	<record><num>90733</num><content>Some content goes here</content><info>Some info goes here</info></record>
    	<record><num>90734</num><content>Some content goes here</content><info>Some info goes here</info></record>
    	<record><num>90735</num><content>Some content goes here</content><info>Some info goes here</info></record>
    	<record><num>90736</num><content>Some content goes here</content><info>Some info goes here</info></record>
    	<record><num>90737</num><content>Some content goes here</content><info>Some info goes here</info></record>
    	<record><num>90738</num><content>Some content goes here</content><info>Some info goes here</info></record>
    	<record><num>90739</num><content>Some content goes here</content><info>Some info goes here</info></record>
    	<record><num>90740</num><content>Some content goes here</content><info>Some info goes here</info></record>
    	<record><num>90741</num><content>Some content goes here</content><info>Some info goes here</info></record>
    	<record><num>90742</num><content>Some content goes here</content><info>Some info goes here</info></record>
    	<record><num>90743</num><content>Some content goes here</content><info>Some info goes here</info></record>
    	<record><num>90744</num><content>Some content goes here</content><info>Some info goes here</info></record>
    	<record><num>90745</num><content>Some content goes here</content><info>Some info goes here</info></record>
    	<record><num>90746</num><content>Some content goes here</content><info>Some info goes here</info></record>
    	<record><num>90747</num><content>Some content goes here</content><info>Some info goes here</info></record>
    	<record><num>90748</num><content>Some content goes here</content><info>Some info goes here</info></record>
    	<record><num>90749</num><content>Some content goes here</content><info>Some info goes here</info></record>
    	<record><num>90750</num><content>Some content goes here</content><info>Some info goes here</info></record>
    	<record><num>90751</num><content>Some content goes here</content><info>Some info goes here</info></record>
    	<record><num>90752</num><content>Some content goes here</content><info>Some info goes here</info></record>
    	<record><num>90753</num><content>Some content goes here</content><info>Some info goes here</info></record>
    	<record><num>90754</num><content>Some content goes here</content><info>Some info goes here</info></record>
    	<record><num>90755</num><content>Some content goes here</content><info>Some info goes here</info></record>
    	<record><num>90756</num><content>Some content goes here</content><info>Some info goes here</info></record>
    	<record><num>90757</num><content>Some content goes here</content><info>Some info goes here</info></record>
    	<record><num>90758</num><content>Some content goes here</content><info>Some info goes here</info></record>
    	<record><num>90759</num><content>Some content goes here</content><info>Some info goes here</info></record>
    	<record><num>90760</num><content>Some content goes here</content><info>Some info goes here</info></record>
    	<record><num>90761</num><content>Some content goes here</content><info>Some info goes here</info></record>
    	<record><num>90762</num><content>Some content goes here</content><info>Some info goes here</info></record>
    	<record><num>90763</num><content>Some content goes here</content><info>Some info goes here</info></record>
    	<record><num>90764</num><content>Some content goes here</content><info>Some info goes here</info></record>
    	<record><num>90765</num><content>Some content goes here</content><info>Some info goes here</info></record>
    	<record><num>90766</num><content>Some content goes here</content><info>Some info goes here</info></record>
    	<record><num>90767</num><content>Some content goes here</content><info>Some info goes here</info></record>
    	<record><num>90768</num><content>Some content goes here</content><info>Some info goes here</info></record>
    	<record><num>90769</num><content>Some content goes here</content><info>Some info goes here</info></record>
    	<record><num>90770</num><content>Some content goes here</content><info>Some info goes here</info></record>
    	<record><num>90771</num><content>Some content goes here</content><info>Some info goes here</info></record>
    	<record><num>90772</num><content>Some content goes here</content><info>Some info goes here</info></record>
    	<record><num>90773</num><content>Some content goes here</content><info>Some info goes here</info></record>
    	<record><num>90774</num><content>Some content goes here</content><info>Some info goes here</info></record>
    	<record><num>90775</num><content>Some content goes here</content><info>Some info goes here</info></record>
    	<record><num>90776</num><content>Some content goes here</content><info>Some info goes here</info></record>
    	<record><num>90777</num><content>Some content goes here</content><info>Some info goes here</info></record>
    	<record><num>90778</num><content>Some content goes here</content><info>Some info goes here</info></record>
    	<record><num>90779</num><content>Some content goes here</content><info>Some info goes here</info></record>
    	<record><num>90780</num><content>Some content goes here</content><info>Some info goes here</info></record>
    	<record><num>90781</num><content>Some content goes here</content><info>Some info goes here</info></record>
    	<record><num>90782</num><content>Some content goes here</content><info>Some info goes here</info></record>
    	<record><num>90783</num><content>Some content goes here</content><info>Some info goes here</info></record>
    	<record><num>90784</num><content>Some content goes here</content><info>Some info goes here</info></record>
    </data>
    </response>
    "<--
    23:25:04.729:XRP3:INFO:ResultSet:isc_ResultSet_0 (created by: isc_OID_0):Received 76 records from server
    23:25:04.745:XRP3:INFO:ResultSet:isc_ResultSet_0 (created by: isc_OID_0):cached 76 rows, from 90709 to 90784 (1500000 total rows, 228 cached)
    So clearly the data is being received and initially processed but the ListGrid or some other component is doing something very strange.

    IE8 shows the problem while Firefox 3.6.8 and Chrome 6.0.472.63 works perfectly.

    Leave a comment:


  • tomhj
    started a topic ListGrid scalability issue in IE with > 10,000 rows

    ListGrid scalability issue in IE with > 10,000 rows

    Configuration: SmartGWT version 2.2 (also tried 2.3 nightly), GWT 1.5.3

    My application uses the ListGrid in virtual pagination mode. I have a servlet that is hooked up via the RestDataSource to provide XML using the <startRow>, <endRow> and <totalRows> elements. My data source can provide over 1M rows, 75 at a time.

    The brick wall that I've run into involves the ListGrid running under IE (either in the GWT 1.5.3 hosted mode or in IE in production mode). Once I scroll past 10,000 rows, IE basically hangs - sometimes with the dreaded "script running slowly" message and sometimes the list grid just appears to show no rows (even though scroll bar stays in the position I dragged it to).

    I did install a ListGrid.addDataArrivedHandler and I see the 75 rows are being returned pretty quickly after the scrollbar "button" dragging stops. So I know it isn't a problem with the server side taking too long to serve the data.

    The amount of "virtual" data shouldn't matter as long as the ListGrid is only attempting to work with the max of 75 rows at a time with the much larger total amount - but I'm wondering if it is doing something internally that really slows down after 10,000 rows.

    Firefox and Chrome browsers do not exhibit this problem - could be due to their faster javascript engines.

    Any suggestions or hints of where to look?

    thanks,
    Tom
Working...
X