Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/jsf/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jsf 如何在缩放时暂时停止刷新Primefaces折线图_Jsf_Primefaces - Fatal编程技术网

Jsf 如何在缩放时暂时停止刷新Primefaces折线图

Jsf 如何在缩放时暂时停止刷新Primefaces折线图,jsf,primefaces,Jsf,Primefaces,我使用JSF/Primefaces p:chart显示动态折线图,该折线图根据实时数据通过p:poll标记定期更新(例如,间隔3秒),并且zoom属性设置为true。现在,问题是我希望图表在缩放时暂时停止更新,在双击重置缩放时恢复更新。但是,更新的图表总是覆盖我正在观看的缩放图表。如何配置图表,使其在缩放时停止刷新?我已经解决了这个问题,结果显示Zoom和ResetZoom都有事件,因此我可以将javascript函数绑定到这些事件,以便停止和启动p:poll 让我以下面的代码片段的形式分享我的

我使用JSF/Primefaces p:chart显示动态折线图,该折线图根据实时数据通过p:poll标记定期更新(例如,间隔3秒),并且zoom属性设置为true。现在,问题是我希望图表在缩放时暂时停止更新,在双击重置缩放时恢复更新。但是,更新的图表总是覆盖我正在观看的缩放图表。如何配置图表,使其在缩放时停止刷新?

我已经解决了这个问题,结果显示Zoom和ResetZoom都有事件,因此我可以将javascript函数绑定到这些事件,以便停止和启动p:poll

让我以下面的代码片段的形式分享我的解决方案

index.xhtml

<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");