2016-04-20 14 views
1

In einem Tabpanel wird der Inhalt jedes Tabs vom Server mit Hilfe des Attributs switchType="ajax" abgerufen, so dass der gesamte Inhalt nicht beim Start abgerufen werden muss. Nachdem der Inhalt einmal abgerufen wurde, sollte er jedoch nicht mehr vom Server abgerufen werden, da der Inhalt bereits auf der Seite vorhanden ist. Der Inhalt des Tab sollte sollte nur zwischen display:none und display:block umgeschaltet wird, wie es, wenn die switchType zu wurde eingestellt werden würde clientJSF/Richfaces Ajax Anfragen

Gibt es eine Möglichkeit JSF zu sagen/Richfaces nicht die zweite Ajax-Anforderung zu senden, wenn der Inhalt bereits wurde abgerufen und stattdessen nur die Sichtbarkeit wechseln?

Auf andere Weise gefragt: ist es möglich, die switchType="ajax" auf die erste Anfrage und switchType="client" für die folgenden Anfragen zu verwenden?

+0

Wenn Sie nicht erwarten, dass sich der Inhalt ändert, ist Ajax sinnlos. Gibt es signifikante Unterschiede in den Ladezeiten? – Makhiel

+0

Es dauert 3x so lange, um alles von Anfang an zu laden, und der Benutzer kann nicht einmal auf die anderen Registerkarten klicken, also möchte ich den Inhalt on-demand laden, d. H. Mit Ajax. Da die Ajax-Anfragen auch etwas Zeit in Anspruch nehmen, möchte ich das nur einmal tun. – cw24

Antwort

1

Sie müssen ein Flag für jede Registerkarte, die den switchType entscheidet, z.

<rich:tab header="tab1" action="#{bean.switchTab(0)}" 
    switchType="#{bean.tabList[0] ? 'client' : 'ajax'}">Content</rich:tab> 

Sie werden mit switchType="ajax" starten, aber wenn Sie auf die Registerkarte laden Sie es mit switchType="client" erneut gerendert werden.