侦听JavaScript中的变量更改 函数notify(){ var json={ 'sessionId':“#{session.id}”, 'cartToken':“{socketTokenBean.token}” }; notifyAll(JSON.stringify(JSON));//将“JSON”推送到WebSocket通道。 }

侦听JavaScript中的变量更改 函数notify(){ var json={ 'sessionId':“#{session.id}”, 'cartToken':“{socketTokenBean.token}” }; notifyAll(JSON.stringify(JSON));//将“JSON”推送到WebSocket通道。 },javascript,jsf,primefaces,Javascript,Jsf,Primefaces,可以有另一个类似的组件来代替。把它看作是一个在购物篮中保持数量价值的输入组件。code>bean是一个会话范围的托管bean,包含购物篮中的项目列表 的oncomplete处理程序调用一个JavaScript函数,该函数将JSON消息推送到WebSocket通道。显然,如果中没有任何更改,那么将JSON消息推送到WebSocket通道就一文不值——它将不必要地向相关客户端发送通知,占用不必要的处理能力 只有当给定的所持有的值已更改时,才有方法在这里调用notify()函数oncomplete=“

可以有另一个类似
的组件来代替
。把它看作是一个在购物篮中保持数量价值的输入组件。code>bean是一个会话范围的托管bean,包含购物篮中的项目列表

oncomplete
处理程序调用一个JavaScript函数,该函数将JSON消息推送到WebSocket通道。显然,如果
中没有任何更改,那么将JSON消息推送到WebSocket通道就一文不值——它将不必要地向相关客户端发送通知,占用不必要的处理能力


只有当给定的
所持有的值已更改时,才有方法在这里调用
notify()
函数
oncomplete=“notify()”

您不希望在服务器端使用JSF
ValueChangeListener
?但是如何调用呢?它不会阻止调用JavaScript函数
notify()
,调用该函数时会将JSON消息推送到WebSocket通道,而WebSocket通道又会不必要地通知关联的客户端。如果提交表单,则会运行值更改侦听器(如果需要,可以通过编程方式添加它们)在action/prerender中,您可以确定是否有任何更改,然后仅从服务器端触发推送。这样就不需要
notifyAll()
(我对这个函数名有似曾相识的感觉,也许你以前问过一个类似的问题?@BalusC:@Kukeltje:没有这个问题