3 Replies Latest reply on Jan 20, 2010 1:58 PM by tnaran

    Problem: Page incompletely rendered

    tnaran

      I'm having a weird problem with my application.

       

      Sometimes, when rendering the page, it will only render some of the elements.  I hit refresh, it renders the entire page normally.  When I use FireBug, it looks like it's a complete response from the server but chunks of the page weren't rendered.

       

      The chunks don't have "rendered" attributes or anything else that should interfere with rendering.  I see nothing in the log file indicating an error or exception.

       

      This especially happens when doing post-back page submission/navigation, not the partial re-renders of RichFaces/A4J.

       

      Let me know what further information I can provide.

       

      Thanks in advance!

        • 1. Re: Problem: Page incompletely rendered
          ilya_shaikovsky
          page sources would be helpfull for investigation.
          • 2. Re: Problem: Page incompletely rendered
            tnaran

            The pages in question run almost a 100k.  I can't seem to re-create this with smaller pages, but I can show you the high-level page markup.

             

            First off, I'm using Facelets and ui:composition for templating.  The top template is:

             

            layout.xhtml:

            {code:xml}
            <?xml version="1.0" encoding="ISO-8859-1" ?>
            <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
            <html xmlns="http://www.w3.org/1999/xhtml"
                xmlns:f="http://java.sun.com/jsf/core"
                xmlns:h="http://java.sun.com/jsf/html"
                xmlns:ui="http://java.sun.com/jsf/facelets"
                xmlns:a4j="http://richfaces.org/a4j"
                xmlns:rich="http://richfaces.org/rich"
                xmlns:p="http://primefaces.prime.com.tr/ui">
            <f:loadBundle basename="ca.absu.patr.pact.version" var="version" />
            <head>
            <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />


            <ui:insert name="includes" />
            <style type="text/css">
            .leftAlign {
                text-align: left;
            }


            .rightAlign {
                text-align: right;
            }
            </style>
            <script type="text/javascript">
                 var infoWindowAMShown = false;
                 var infoWindowAMTimer;
                 function showModalInfoWindow()
                 {
                      infoWindowAMTimer = setTimeout("if(!infoWindowAMShown){Richfaces.showModalPanel('ajaxLoadingModalBox');infoWindowAMShown=true;}", 1000);
                 }
                 function hideModalInfoWindow()
                 {
                      if (infoWindowAMShown){Richfaces.hideModalPanel('ajaxLoadingModalBox');infoWindowAMShown=false;}else{if(infoWindowAMTimer)clearTimeout(infoWindowAMTimer);}
                 }
            </script>
            <title><ui:insert name="title">PA Tracking</ui:insert></title>
            </head>
            <body>
            <f:view>
                <a4j:status onstart="showModalInfoWindow();"
                    onstop="hideModalInfoWindow()"></a4j:status>


                <div id="wrapper">
                <div id="header"><h:form>
                    <table border="0" width="1181px" cellspacing="0" cellpadding="0">
                        <tr>
                            <td style="vertical-align: bottom"><img
                                src="#{facesContext.externalContext.requestContextPath}/images/logo_1.gif"
                                alt="PA Tracking" vspace="5" /></td>
                            <td style="vertical-align: bottom"><img
                                src="#{facesContext.externalContext.requestContextPath}/images/logo_2.gif"
                                alt="BC Hydro" style="float: right; margin-right: 10px" />
                                <div style="clear: both; margin: 0 1em 0 0" class="header-controls">
                                     <ui:insert name="header-controls" />
                                </div>
                            </td>
                        </tr>
                    </table>
                </h:form></div>


                <ui:insert name="content">Insert Your Content Here</ui:insert></div>
                <div style="font-size: x-small; text-align: right"><h:outputText
                    value="Built on #{version.build_date}" /></div>


                <rich:modalPanel id="ajaxLoadingModalBox" minHeight="100"
                    minWidth="250" height="100" width="250" zindex="2000">
                    <p style="text-align: center">Your request is being processed,
                    please wait.</p>
                    <div style="text-align: center"><h:graphicImage
                        value="/images/loading.gif" style="border: none" /></div>
                </rich:modalPanel>


                <rich:modalPanel id="errorMessages" minHeight="100" minWidth="250"
                    zindex="2000">
                    <f:facet name="header">
                        <h:panelGroup>
                            <h:outputText value="Errors"></h:outputText>
                        </h:panelGroup>
                    </f:facet>
                    <f:facet name="controls">
                        <h:panelGroup>
                            <h:graphicImage value="/images/close.png" styleClass="hidelink"
                                id="hide_errors" />
                            <rich:componentControl for="errorMessages" attachTo="hide_errors"
                                operation="hide" event="onclick" />
                        </h:panelGroup>
                    </f:facet>
                    <rich:messages />
                    <input type="button" name="close_errs" value="Close"
                        onclick="hideModal(#{rich:component('errorMessages')})" />
                </rich:modalPanel>


            </f:view>
            </body>
            </html>
            {code}
            • 3. Re: Problem: Page incompletely rendered
              tnaran

              Couldn't seem to edit that post properly.

               

              This is the actual client of that template

               

              {code:xml}

              <?xml version="1.0" encoding="ISO-8859-1" ?>
              <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
              <html xmlns="http://www.w3.org/1999/xhtml"
                  xmlns:ui="http://java.sun.com/jsf/facelets"
                  xmlns:h="http://java.sun.com/jsf/html"
                  xmlns:f="http://java.sun.com/jsf/core"
                  xmlns:a4j="http://richfaces.org/a4j"
                  xmlns:rich="http://richfaces.org/rich">
              <head>
              </head>
              <body>
              <ui:composition template="layout.xhtml">
                  <ui:define name="title">PA/CT</ui:define>



                  <ui:define name="content">
                      <h:form id="mainForm">
                          <div
                              style="background-image: url(#{facesContext.externalContext.requestContextPath}/images/headnav_s2.gif); background-repeat: repeat-x; background-position: top; padding-top: 3px;">
                          <rich:tabPanel id="queryTabs" selectedTab="#{tabBean.activeTab}" switchType="server">
                          
                              <rich:tab id="db" label="Dashboards" reRender="results" ontabenter="javascript:highlightGraphBar(#{dashboardBean.previousSelectionId})">
                                  <ui:include src="includes/tab1.xhtml" >
                                      <ui:param name="panel" value="db" />
                                  </ui:include>
                              </rich:tab>
                          
                              <rich:tab id="progress" label="Details" reRender="results">
                                  <ui:include src="includes/tab2.xhtml" >
                                      <ui:param name="panel" value="progress" />
                                  </ui:include>
                              </rich:tab>
                                      
                              <rich:tab id="circuit" label="Circuits" reRender="results">
                                  <ui:include src="includes/tab3.xhtml"/>
                              </rich:tab>


                              <rich:tab id="pa" label="Plant Alteration" reRender="results">
                                  <ui:include src="includes/tab4.xhtml"/>
                              </rich:tab>


                              <rich:tab id="quick" label="Quick Searches" reRender="results">
                                  <ui:include src="includes/tab5.xhtml"/>
                              </rich:tab>


                              <rich:tab id="reports" label="Reports" reRender="results">
                                  <ui:include src="includes/tab6.xhtml"/>
                              </rich:tab>          



                          </rich:tabPanel>
                          </div>


                          <rich:panel id="results" styleClass="results">
                              <a4j:include viewId="includes/table_a.xhtml"
                                  rendered="#{queryBean.resultView=='a'}" />
                              <a4j:include viewId="includes/table_b.xhtml"
                                  rendered="#{queryBean.resultView=='b'}" />                
                          </rich:panel>
                      </h:form>


                      <ui:include src="includes/notes.xhtml" />
                  </ui:define>
              </ui:composition>
              </body>
              </html>
              {code}