7 Replies Latest reply on Oct 26, 2011 9:33 AM by Serkan Eskici

    Improving seam performance in the internet explorer 8

    Jayendran M Newbie

      We are using seam framework for our application. In mozilla , when the list page screen is loaded it is taking 3 seconds. But in the internet explorer the same list page loading is taking 15 seconds.


      So can you please help us to improve the seam application performance in the internet explorer. Since client needs atleast 4 or 5 secs to load the list page. ( client preferred browser is internet explorer).



      Please anybody help us to improve the seam applications in internet explorer.

        • 1. Re: Improving seam performance in the internet explorer 8
          Leo van den berg Master

          Hi,


          That's the price of using an non-compatible browser ;-)


          Ok and now serious. We've found the same behaviour in our applications. The simple thing you can do is put explorer 8 in compatibility mode, which basically sets it to version 7. However that's not realy user-friendly. Another point is to have a look at the way you interact with Seam. Dan Allen has written a really excellent article Speed up your Data driven JSF/Seam application by two orders of magnitude Article
          and it the article he explains how you should finetune your application.



          Leo


          • 3. Re: Improving seam performance in the internet explorer 8
            Shervin Asgari Master

            Leo van den Berg wrote on Dec 22, 2010 08:48:


            Hi,

            That's the price of using an non-compatible browser ;-)

            Ok and now serious. We've found the same behaviour in our applications. The simple thing you can do is put explorer 8 in compatibility mode, which basically sets it to version 7.


            And this you can do in pages.xml



                


            <header name="X-UA-Compatible" value="IE=EmulateIE7"/>



            • 4. Re: Improving seam performance in the internet explorer 8
              Jake C Newbie

              I've added this tag, but it only works when accessing our app through the intranet. When you access it via it's public name, it fails to go into IE7 mode. I thought maybe it had something to do with SSL and certificate failure, as our site runs under HTTPS and the certificate fails when run in the intranet, and you have to accept the bad certificate. However, when run via the intranet using the IP directly instead of the machine name, it ALSO fails.


              WORKS with failed SSL cert:
              https://localintranetname/myapp/


              Fails with failed SSL cert:
              https://10.0.1.xxx/myapp/
              https://123.456.789/myapp/


              Fails with correct SSL cert:
              https://my.domain.com/myapp/


              Failure is detected via ID's developer tools (F12), which states the Document Mode (as well as the fact that some of our AJAX controls misbehave).


              One thing I found is that this directive must be the FIRST directive encountered in the header. I was originally trying to use it in the txml template, but the AJAX scripts got inserted in the header before my own headers, so it never worked. I was all excited because putting it in pages.xml seemed to work on our test server, but when I put it into production, it still failed.


              Compatibility Mode is our biggest support issue. Even long time users get bit by it, because IE, in it's infinite wisdom, randomly decides to remove our site from our users compatibility list.


              We are running Seam 2.0.1.GA.

              • 5. Re: Improving seam performance in the internet explorer 8
                Serkan Eskici Novice

                Try this (quick) checklist:



                • I highly recommend you to use the Firebug and YSlow plugins for Firefox to check for the size of any JS, CSS and XHTML files => if these are big, then you should enable GZIP compression on JBoss and also cache them via components.xml with the web-cache-filter tag. Also play with the values of 'org.richfaces.LoadScriptStrategy' and 'org.richfaces.LoadStyleStrategy' in web.xml and check what fits best for your situation (ALL, DEFAULT, NONE).

                • Make sure that debug=false in components.xml when you use it in production

                • Make sure that you have these values set in your web.xml



                <context-param>
                       <param-name>facelets.DEVELOPMENT</param-name>
                       <param-value>false</param-value>
                </context-param>
                
                <context-param>
                     <param-name>org.ajax4jsf.xmlparser.ORDER</param-name>
                     <param-value>NONE</param-value>
                </context-param>
                
                <context-param>
                     <param-name>org.ajax4jsf.xmlparser.NONE</param-name>
                     <param-value>.*\..*</param-value>
                </context-param>
                
                <context-param>
                     <param-name>org.ajax4jsf.COMPRESS_SCRIPT</param-name>
                     <param-value>false</param-value>
                </context-param>
                
                <context-param>
                     <param-name>com.sun.faces.serializationProvider</param-name>
                     <param-value>org.jboss.web.jsf.integration.serialization.JBossSerializationProvider</param-value>
                </context-param>
                




                • Make sure you're using the lastest version of Seam (if it's possible).

                • Last but not least, you should definitely read the article in Leo's post. ;)

                • 6. Re: Improving seam performance in the internet explorer 8
                  Serkan Eskici Novice

                  And FYI, I'm also developing a Seam application and it works like a rocket on IE8, Firefox and Opera.
                  We don't support IE7 and below.


                  And I've set this header value in mine main template:


                  <header name="X-UA-Compatible" value="IE=EmulateIE8"/>
                  



                  To make sure that the web pages are rendered well in (all versions of) IE8. And not specifically for performance problems.