4 Replies Latest reply on Oct 17, 2013 12:16 PM by talbotgui

    Some "rich:select" take more than 3 seconds to display the short items list.

    talbotgui

      We use a lot of "rich:select" tags in "rich:datatable" headers. Most of them works well but sometimes some of these selectbox take 3 seconds (or more) to display items after a click.

       

      For example, one of the selectbox display an item list which is fixed (the list never changes) and short (4 elements). Most of the time, the list is displayed in less than 0.5 second. But sometimes, it takes more than 3 seconds.

       

      We are using RichFaces-4.2.2.Final and Primefaces-3.4 in a web application deployed on Weblogic11.

       

      All of them are like this one:

      <code>

      <rich:select filterOnUpdates="true" onlistshow="this.rf.component.input.val(''); this.rf.component.__updateItems()"

              onblur="RichFaces.$(this.rf.component.id).setValue(this.rf.component.defaultLabel);" 

              id="xxxxx" value="#{myBean.filter.data1}"

              styleClass="myTable_myColumn" defaultLabel="#{msgApplication['common.all']}"

              clientFilterFunction="customFilter" enableManualInput="true" maxListHeight="130px" listWidth="auto">

              <f:selectItem itemLabel="#{msgApplication['common.tous']}" itemValue="" />

              <f:selectItems value="#{historiqueFichiers.listeStatuts}" var="var" itemLabel="#{var}" itemValue="#{var}" />

              <a4j:ajax event="selectitem" render="tableRecu,dataTableUtil" listener="#{historiqueFichiers.changePageFiltre}" />

              <a4j:ajax event="blur" render="tableRecu,dataTableUtil" listener="#{historiqueFichiers.changePageFiltre}" />

          </rich:select>

          .fichierEmis_selectStatut input {width: 55px !important;}

          <script>function customFilter(subString, value) {if (subString.length >= 1 && value.indexOf(subString) != -1 && value != "tous") {return true;} else {return false;}};</script>

      </code>

      The problem seems to be in JavaScript: see the profiler screenshot.

      profilage.jpg

       

      Have you already seen that?