Announcement

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

    #16
    Thank you everyone for the help.
    Moving to the datasource and setting only the following properties on the grid:
    Code:
    	pcsGrid.setWrapCells(true);  
    	pcsGrid.setFixedRecordHeights(false); 	
    	pcsGrid.setBaseStyle("tallCell");
    has improved the performance on IE considerably (that with 15 columns). I can confirm that with fewer columns IE is just as snappy as Firefox.
    Maybe I will suggest that to users if they will be complaining, and the next feature will be to actually remember their settings :).

    Anyhow, I have accomplished my goal (increase the speed of the grid), so I thank you all.

    Comment


      #17
      @sgiurgiu Good to hear. If you get a chance to confirm with Fiddler that the problem was hundreds of background image requests, that would be useful information.

      Comment


        #18
        ok, I have done the Fiddler tests.

        In its current version (setBaseStyle("tallCell"); ), in order to load the entire page in the browser there were around 150 requests to the server. Over 90% of those were for images, and most of the response were 304 (not changed).

        While actually hovering over the rows, selecting them , scrolling, no other requests were made to the server.

        Reverting to the previous style, prettier but a bit slower, around 150 requests were made to the server for the initial load, growing up to 200 in 2 minutes of use.
        So, there is a difference, but i don't think its major.

        Both tests were done using the "Enterprise" theme. In the Showcase, just as Isomorphic predicted, the Tree Frog theme was indeed faster than the enterprise one, in IE.
        The number of columns and the images used in the theme may indeed pose a problem for IE.
        And probably me stuffing too much data into the datasource :(.

        Thank you.

        Comment


          #19
          Hi sgiurgiu,

          Thanks for taking the time to look with Fiddler.

          It wasn't clear whether, with Enterprise theme with image rollovers enabled, you were seeing additional requests as you rolled over the rows? Specifically requests for images/ListGrid/row.png, images/ListGrid/row_Over.png et al. Were those the 50 extra requests you referred to?

          Comment


            #20
            I have the exact same problem. The rollover in IE is slow and draining a lot of cpu. Using "tallCell" as baseStyle helped improved it a bit, but it still feels "unresponsive". It gets faster when I hide some columns. It works fine in Firefox though.

            Comment


              #21
              Low speed in IE7

              Hi, i'm have a problem.... Into IE7, smartClient show the data slowly (in FF is more fast)
              What i do have to modify in my code????

              this is my code:
              isc.DataSource.create({
              ID:"countries",
              dataFormat:"json",
              dataURL:"genPais.php",
              fields:[
              {title:"Name", name:"name"},
              {title:"Population", name:"population"},
              {title:"Total Area", name:"total_area"},
              {title:"Government", name:"government"}
              ]
              });

              isc.ListGrid.create({
              width: "50%",
              height: 150,
              left:150,
              top:200,
              dataSource: "countries",
              autoFetchData: true
              });

              Tks!!!!

              Comment


                #22
                Hello Rata,

                This thread is filled with advice on things to check. What have you tried so far?

                Comment


                  #23
                  Hi

                  I've tried a few things because of my lack of knowledge in smartclient
                  I need to show a grid with the information generated by a php program that runs on a server
                  but, if the result contains 5000 records or more, in internet explorer is very slow to show the information

                  i've tried modify the header of html (doctype), but nothing...
                  the others options, i don't know where put inside of code

                  ah! this code, in firefox, run faster and nice

                  Tks!

                  Comment


                    #24
                    Originally posted by Isomorphic
                    Hi sgiurgiu,

                    Thanks for taking the time to look with Fiddler.

                    It wasn't clear whether, with Enterprise theme with image rollovers enabled, you were seeing additional requests as you rolled over the rows? Specifically requests for images/ListGrid/row.png, images/ListGrid/row_Over.png et al. Were those the 50 extra requests you referred to?
                    Hi I am also seeing the same problem. I ran Fiddler. And as you expected it is making numerous call for image mages/ListGrid/row_Over.png while hovering over the grid row, all return with status code 304 .
                    This is also the case with all other *over images like selectPicker_over menu_over etc.

                    As suggested in the previous response, I tried
                    Grid.setWrapCells(true);
                    Grid.setFixedRecordHeights(false);
                    Grid.setBaseStyle("tallCell");

                    This does remove the calls to server. but hardly improves the performance in IE.
                    In IE the grid is still very slow in row highlight on hover or row select.

                    I see other posts also but can not seem to find a solution.


                    Can you suggest any way to fix this.

                    Thanks
                    Last edited by aiox; 1 May 2009, 10:53.

                    Comment


                      #25
                      @aiox If you're seeing lots of requests for row_over.png, you need to HTTP headers that indicate to the browser that the file can be cached. Generally you do this by setting Expires headers well into the future - Google for details.

                      However those requests will go away if you setBaseStyle("tallCell") in the Enterprise skin, because the rollover image is no longer being used.

                      Comment


                        #26
                        Still slow

                        I must say the advice on this thread is very inconclusive. I experience very similar issue as the others who posted here. Really slow in IE, fast in FF. Grid size: 100 rows x 50 columns. Data in cells is either numbers or small strings. The datasize is fixed to 100 rows- the grid is initialized with all 100 rows when the page first loads. I dint need to do any paging to get more data at the moment.

                        I get really slow performance on this fixed dataset in IE.

                        I have tried all the tricks mentioned here with no luck.

                        I managed to reduce the 304 image requests with the settings in the previous post but the grid is still extremly slow when scrolling both vertically and horizontally.

                        Comment


                          #27
                          @miso please see previous posts for the information you should gather and post if you believe you have applied all the techniques suggested. The techniques do work when applied correctly, which is why the Showcase is fast.

                          Comment


                            #28
                            Caching

                            This may not apply to everyone, but cache control makes a huge difference.

                            I found that my ListGrid was extremely slow over at remote sites / via vpn when I performed a packet capture I saw about three http image requests per grid row which obviously created enomrous interaction lag. There were "no-cache" directives in the header.

                            If you have this issue, one thing you can do is create a filter and force your own cache control, something like:

                            [CacheFilter.java]

                            Code:
                            package com.test;
                            
                            import java.io.IOException;
                            
                            import javax.servlet.Filter;
                            import javax.servlet.FilterChain;
                            import javax.servlet.FilterConfig;
                            import javax.servlet.ServletException;
                            import javax.servlet.ServletRequest;
                            import javax.servlet.ServletResponse;
                            import javax.servlet.http.HttpServletResponse;
                            
                            public class CacheFilter implements Filter {
                            	
                            	String CacheControl;
                            
                            	public void doFilter(ServletRequest req, ServletResponse res,
                            			FilterChain chain) throws IOException, ServletException {
                            
                            		((HttpServletResponse)res).setHeader("Cache-Control", CacheControl);
                            		
                            		chain.doFilter(req, res);
                            	}
                            	public void init(FilterConfig config) throws ServletException {
                            
                            		CacheControl = config.getInitParameter("Cache-Control");
                            
                            	}
                            	public void destroy() {
                            	}
                            }
                            [web.xml]

                            Code:
                            <filter>
                                <filter-name>CacheFilter</filter-name>
                                <filter-class>com.test.CacheFilter</filter-class>
                            
                                <init-param>
                                    <param-name>Cache-Control</param-name>
                                    <param-value>max-age=360</param-value>
                                </init-param> 
                            
                            </filter>
                            
                            <filter-mapping>
                                <filter-name>CacheFilter</filter-name>
                                <url-pattern>/myApp/*</url-pattern>
                            </filter-mapping>
                            Also certain versions of Tomcat will effectively disable caching in IE if you are using an authenticator. So for example if the context (/test/) is protected by a form or a basic authenticator Tomcat adds a Cache-Control : "No-cache" header which IE does not interpret correctly and disables temporary caching.

                            See: http://www.mail-archive.com/tomcat-u...msg151294.html for solution.
                            Last edited by Isomorphic; 3 Mar 2010, 06:46.

                            Comment


                              #29
                              Also I would like to point out that FF performance was fine even over VPN

                              The reason:

                              "The problem is that IE interprets the "no-cache" cache control HTTP
                              headers as forbidding the temporary caching IE does while streaming a
                              file into an app or the local file system, contrary to the semantics
                              defined for these headers in the HTTP spec (we're all shocked, I know).
                              Thus when the app or file system requests the file that was supposed to
                              be downloaded, IE doesn't find it, and cleverly reports that the site is
                              unreachable."

                              Comment


                                #30
                                Thanks for posting that Andrei. Just to clarify, are you saying that in your experience a "Cache-control: max-age" header had a further benefit relative to just setting Expires headers (which is theoretically equivalent according to standards, but then, we're talking about IE here).

                                Comment

                                Working...
                                X