Jsf 如何在缩放时暂时停止刷新Primefaces折线图
我使用JSF/Primefaces p:chart显示动态折线图,该折线图根据实时数据通过p:poll标记定期更新(例如,间隔3秒),并且zoom属性设置为true。现在,问题是我希望图表在缩放时暂时停止更新,在双击重置缩放时恢复更新。但是,更新的图表总是覆盖我正在观看的缩放图表。如何配置图表,使其在缩放时停止刷新?我已经解决了这个问题,结果显示Zoom和ResetZoom都有事件,因此我可以将javascript函数绑定到这些事件,以便停止和启动p:poll 让我以下面的代码片段的形式分享我的解决方案 index.xhtmlJsf 如何在缩放时暂时停止刷新Primefaces折线图,jsf,primefaces,Jsf,Primefaces,我使用JSF/Primefaces p:chart显示动态折线图,该折线图根据实时数据通过p:poll标记定期更新(例如,间隔3秒),并且zoom属性设置为true。现在,问题是我希望图表在缩放时暂时停止更新,在双击重置缩放时恢复更新。但是,更新的图表总是覆盖我正在观看的缩放图表。如何配置图表,使其在缩放时停止刷新?我已经解决了这个问题,结果显示Zoom和ResetZoom都有事件,因此我可以将javascript函数绑定到这些事件,以便停止和启动p:poll 让我以下面的代码片段的形式分享我的
<h:form id="dashboardForm">
<p:poll interval="3" update="chart" process="@this" global="false" ignoreAutoUpdate="true" widgetVar="chartpoll"/>
<p:chart id="chart" type="line" model="#{chartView.zoomModel}" style="height:300px;" widgetVar="chart" responsive="true"/>
</h:form>
<script type="text/javascript">
function lineChartExtender() {
$('#dashboardForm\\:chart').bind('jqplotZoom', function(ev, gridpos, datapos, plot, cursor){
PF('chartpoll').stop();
});
$('#dashboardForm\\:chart').bind('jqplotResetZoom', function(ev, gridpos, datapos, plot, cursor){
PF('chartpoll').start();
});
}
</script>
购物车没有刷新自身,轮询正在刷新。解决方案停止轮询(阅读文档)是的,我可以添加两个按钮手动启动和停止p:poll,这意味着用户可以停止轮询、缩放,然后在缩放后启动轮询。但是,是否有一种对用户更方便的实现?也就是说,p:poll在用户缩放时自动停止,在用户完成缩放后自动启动。启动缩放很容易检测到。。。图表afaik中有一个“缩放事件”停止“缩放”(不是在您原来的问题中)很难检测到(您无法检查用户没有做任何事情,除非您在每个缩放事件后使用一些超时,并在出现新的缩放事件时重置它)。但是如果用户不是在缩放而是在平移。。。所以“再次开始更新”按钮并不奇怪。
LineChartModel model = new LineChartModel();
model.setZoom(true);
model.setExtender("lineChartExtender");