This page (revision-11) was last changed on 15-Sep-2016 19:49 by Dieter Käppel

This page was created on 22-Nov-2013 10:30 by Dieter Käppel

Only authorized users are allowed to rename pages.

Only authorized users are allowed to delete pages.

Page revision history

Version Date Modified Size Author Changes ... Change note
11 15-Sep-2016 19:49 8 KB Dieter Käppel to previous
10 15-Sep-2016 19:49 8 KB Dieter Käppel to previous | to last
9 23-Dec-2013 03:01 8 KB Dieter Käppel to previous | to last
8 23-Dec-2013 03:00 8 KB Dieter Käppel to previous | to last
7 25-Nov-2013 19:35 8 KB Dieter Käppel to previous | to last
6 25-Nov-2013 19:33 8 KB Dieter Käppel to previous | to last
5 25-Nov-2013 19:32 7 KB Dieter Käppel to previous | to last
4 25-Nov-2013 19:28 7 KB Dieter Käppel to previous | to last
3 25-Nov-2013 19:20 6 KB Dieter Käppel to previous | to last
2 22-Nov-2013 14:05 6 KB Dieter Käppel to previous | to last
1 22-Nov-2013 10:30 7 KB Dieter Käppel to last

Page References

Incoming links Outgoing links

Version management

Difference between version and

At line 1 changed one line
[{Image src='JSF Ext Tags/push-tag.PNG' width='100%' style='float: left;'}]
Mit sogenannten Push können Informationen aktiv an den Browser übertragen werden. Vor allem ist es dadurch möglich, eine Vielzahl von Benutzern gleichzeitig über ein Ereignis zu informieren.
At line 3 removed 4 lines
[JSF Ext Push] ist Bestandteil von [JSF Ext] zur Übertragung von Änderungen aufgrund eines Server-Ereignisses.
In den meisten Fällen werden Daten aufgrund einer Browser-Anforderungen übertragen. In einigen Fällen soll eine Aktualisierung des Browser-Inhalts aufgrund eines anderen Ereignis erfolgen, das zunächst nur am Server vorliegt. Mit sogenannten Push können Informationen aktiv an den Browser übertragen werden. Vor allem ist es dadurch möglich, eine Vielzahl von Benutzern gleichzeitig über ein Ereignis zu informieren.
At line 42 changed one line
!!Direct- und AJAX-Mode
!Direct- und AJAX-Mode
At line 46 changed 2 lines
||Rendering|Inhalt wird im Context des Clients gerendert, der den Event ausgelöst hat und das Resultat auf allen Clients verteilt|Inhalt wird für jeden Client unabhängig gerendert
||Effizienz|Effizienter Modus, da das HTML-Update direkt an alle Clients geschickt werden kann|Für jeden Client wird ein kompletter JSF-Lifecycle durchgeführt inklusive Rendering
||Rendering|Inhalt wird nur bei dem Client gerendert, der den Event ausgelöst hat|Inhalt wird für jeden Client gerendert
||Effizienz|Effizienter Modus, da das HTML-Update direkt an alle Clients geschickt werden kann|Rendering wird für jeden Client getrennt gerendert
At line 52 changed one line
!!Rendering
!Rendering
At line 57 changed one line
!!Channel
!Channel
At line 62 removed 27 lines
!!Kombination mit Render-Tag
Der Push-Tag arbeitet mit vielen anderen Tags zusammen. Eine interessante Kombination ist der Render-Tag, der in diesem Fall das Push auslöst:
{{{
<e:push id="push-user-list" direct="true">
<h:form id="user-list-form">
<e:render event="intersult.test.User"/>
<p:dataTable id="user-table" value="#{userList.users}" var="user">
<p:column headerText="Id">
<h:outputText value="#{user.id}"/>
</p:column>
<p:column headerText="Name">
<h:outputText value="#{user.name}"/>
</p:column>
</p:dataTable>
</h:form>
</e:push>
}}}
__Erklärung:__ Dadurch dass sich der Tag <e:render> innerhalb des Tag <e:push> befindet, löst dieser den Push-Event bei allen verbundenen Client aus. Die enthaltene User-Liste <p:dataTable> wird bei allen verbundenen Clients (also Browsern) synchronisiert angezeigt. Sobald der Event "intersult.test.User" ausgelöst wird - egal ob von einem Client oder vom Server - wird die Tabelle neu gerendert.
__Hinweis:__ für die praktische Anwendung könnte man den Zeilen der Tabelle eine Id in Abhängigkeit der User-Id geben und die entsprechende Zelle neu rendern, hinzufügen oder löschen. [JSF Ext] unterstützt auch das Hinzufügen und Löschen von Components durch AJAX.
Das Ganze kann dann so aussehen:
[{Image src='JSF Ext Push/push-user-list.PNG'}]
At line 144 removed 9 lines
!!!Push Status
Der mitgelieferte Tag <ext:push-status> kann den Verbindungsstatus einer Push-Connection sichtbar machen:
{{{
<ext:push-status channel="/push-user-list"/>
}}}
Der Status wird dann als rot/grüne "LED" angezeigt.