如何使用JSF和openface定期刷新页面的一部分

时间:2011-01-19 20:00:47

标签: javascript ajax jsf html5 openfaces

应用程序是在移动设备浏览器的屏幕上显示设备到GPS坐标的距离。

HTML5允许从移动设备获取坐标,但这些坐标需要定期发送到服务器,与目标计算的距离和结果显示在网页上?

如何强制JSF和OpenFaces页面定期发布h:inputHidden值并使用ajax渲染h:outputText? Primefaces有p:poll组件。

    <h:form id="coords">
        <h:inputHidden id="latitude" value="setByJavascript"></h:inputHidden>
        <h:inputHidden id="longitude" value="setByJavascript"></h:inputHidden>        
    </h:form>
    <h:outputText id="distance" value="#{bean.distance}"></h:outputText>

1 个答案:

答案 0 :(得分:2)

您可以使用OpenFaces客户端API从setInterval()函数内部调用Ajax(O$.ajax.request()函数)请求,如下所示:

<body onload="setInterval(function() {
        O$.ajax.request(null, null, {
          execute: 'coords:latitude coords:longitude', 
          render: 'distance'});
        }, 10000)">
  <h:form id="coords">
  ...

此代码可能需要一些调整,但它显示了如何完成此操作的一般概念。