0
在p:poll上的每個ajax更新上,啓動一個新的附加計時器。 我該如何避免它?經過幾次ajax更新後,我的輪詢每秒執行多次。p:poll上的Ajax更新
此代碼演示了:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:h="http://xmlns.jcp.org/jsf/html"
xmlns:f="http://xmlns.jcp.org/jsf/core"
xmlns:p="http://primefaces.org/ui">
<f:view>
<h:head>
</h:head>
<h:body>
<h:form id="testForm">
<p:commandButton value="Click Me" process="@this" update="@all"/>
<p:poll id="myPoll" widgetVar="myPollWidget" interval="5" onstart="console.log('Poll....');" process="@this"/>
</h:form>
</h:body>
</f:view>
</html>
我知道,我可以
onclick="if(PrimeFaces.widgets['myPollWidget']){PF('myPollWidget').stop();}"
在命令按鈕
避免它,通過停止投票。
但是沒有更簡單,更通用的方法來避免這個問題嗎?
有效地,你通過使用update =「@ all'自己介紹這個問題,所以解決方案是:不使用'update =」@ all「'是一個非常好的選擇,但只更新那些需要更新或使用的組件命令按鈕上的'ajax =「false」'(與使用'update =「@ all」'幾乎相同) – Kukeltje
@Kukeltje我使用update =「@ all」,因爲它是我真實項目中的語言選擇器,我想更新整個頁面而不重新加載並丟失視圖範圍 – tak3shi
然後使用codi'@ ViewAccessScope'或您的解決方案 – Kukeltje