У меня есть несколько панелей, каждая из которых отображает некоторое содержимое, и нуль, одна или несколько из этих панелей могут отображаться, как показано в следующем примере :Что такое поведение JSF WebSocket на стороне клиента при удалении из DOM
<div jsf:id="contents">
<ui:fragment rendered="#{aContent.rendered}">
<h:form>
<o:socket channel="a-channel" onmessage"onAMessage"/>
<o:commandScript name="onAMessage"
actionListener=#{aContent.update()}"
render=":aComponent"/>
</h:form>
<my:aComponent id="aComponent" />
</ui:fragment>
<ui:fragment rendered="#{bContent.rendered}">
<h:form>
<o:socket channel="b-channel" onmessage"onBMessage"/>
<o:commandScript name="onBMessage"
actionListener=#{bContent.update()}"
render=":bComponent"/>
</h:form>
<my:bComponent id="bComponent" />
</ui:fragment>
</div>
Я хотел бы знать, что происходит с клиентского веб-сокет на стороне, когда один из этих фрагментов UI удаляется из DOM после обновления AJAX элемента ограждающей.
Закрыт ли сетевой разъем? Должен ли я рассмотреть другой подход?
Спасибо BalusC. Ваш план добавить поддержка выглядит великолепно. Есть ли вероятность, что эта реализация может включать в себя сантехнику для базового уведомления типа , чтобы использовать конструкции типа , где a, b, c будут основными уведомления (только строки)? См. Также: http://stackoverflow.com/questions/39533247/dispatching-web-socket-messages-to-refresh-exactly-what-i-want-in-a-generic-way –
Да, это намерение. – BalusC
Это отличная новость :) Последнее, но не менее важное: я согласен с вами в том, что наличие только одного канала веб-сокета в представлении является хорошей практикой. Но тогда было бы здорово иметь возможность добавлять наблюдателя событий в составной компонент, подобно шаблону CDI @observes, и после приема события составной компонент обновлял только то, что нужно, а не весь компонент. Экспериментальные тесты, выполненные с использованием чистого JavaScript-подхода, показывают, что во время обновления можно сократить сетевой трафик на 50% до 70%, потому что от 50% до 70% составного компонента является статическим HTML –