Javascript Can';不要停止投票
我正在实现一些对话框,这些对话框需要一个公共轮询来从服务器获取新的值。 我正在尝试使用p:poll,但不幸的是我无法阻止它。 我在用户单击一个对话框中的按钮时启动轮询,并在用户单击子对话框中的按钮时尝试停止轮询。这是我用来启动和停止投票的代码: 第一个对话框:Javascript Can';不要停止投票,javascript,jsf-2,primefaces,polling,Javascript,Jsf 2,Primefaces,Polling,我正在实现一些对话框,这些对话框需要一个公共轮询来从服务器获取新的值。 我正在尝试使用p:poll,但不幸的是我无法阻止它。 我在用户单击一个对话框中的按钮时启动轮询,并在用户单击子对话框中的按钮时尝试停止轮询。这是我用来启动和停止投票的代码: 第一个对话框: <p:poll autoStart="false" widgetVar="pollQtdDisponivelCarregamento" immediate="true" update="labelQuantidadeDisp
<p:poll autoStart="false" widgetVar="pollQtdDisponivelCarregamento" immediate="true"
update="labelQuantidadeDisponivelCarregamento labelQuantidadeDisponivelItem"
listener="#{atualizadorQuantidadeDisponivelProduto.atualizarQuantidadeDisponivel(modeloPopupCarregarProduto.produtoSelecionado)}" />
<p:commandButton action="#{controladorPopupCarregarProduto.abrir}"
value="#{vendaMsg['popup.pre_venda.botao.adicionar_produto']}"
title="#{vendaMsg['popup.pre_venda.botao.adicionar_produto.descricao']}"
update="@form" onclick="pollQtdDisponivelCarregamento.start()" />
儿童对话:
<p:commandButton value="OK" style="float:right" immediate="true"
action="#{controladorPopup.fechar}" update="@form"
onsuccess="pollQtdDisponivelCarregamento.stop();" />
有一件事我不明白:当我使用Firebug调试中断javascript执行时,轮询会正确停止,但当我不这样做时,它就不会停止。
有人知道我该如何解决这个问题???我在“民意调查”组件上也遇到过类似的问题(谷歌把我送到这里)。据我所知,您的标记有两个问题。我用的是Primefaces 3.0M4 问题1 使用
将创建一个可使用window.myPoll
访问的javascript对象。如果重新提交包含表单(请参见“更新”属性),则会覆盖此属性。问题是在引擎盖下使用了“window.setInterval”。如果在更换Being之前未停止轮询器,则此间隔将丢失
解决方案:
onclick=“pollqtdisponsivelcarregamento.start();return false;”
阻止表单发送到服务器。(我怀疑这是你的意图)poll.start()
不检查它是否已在运行。调用它两次将导致安排另一个间隔。第一个id已丢失,但仍在向服务器发送请求。尝试快速单击“第一个对话框”中的按钮
解决方案:
首先调用poll.isActive()
检查它是否已经在运行。顺便说一句。您写了“当我使用Firebug中断javascript执行时”。但是在哪里呢?