1

我在 app\common\js\main.js 中使用以下代码

  1. 单击按钮时,我们将 heatbeat 设置为 5 秒,以便每 5 秒 MobileFirst Server 将触发以下两个事件之一:“WORKLIGHT_IS_CONNECTED”或“WORKLIGHT_IS_DISCONNECTED”。

  2. 我已经为这两个事件添加了事件监听器,并且在它们的回调处理程序中我已经将一些信息记录到控制台中。

结果:当我单击按钮时,控制台每 5 秒更新一次(来自 worklight.js 的一些 console.trace),但是,我使用 console.log 记录的信息仅在第一次可见。它在后续事件触发器中不可见。

你能建议出了什么问题吗?

function wlCommonInit(){
    document.addEventListener(WL.Events.WORKLIGHT_IS_CONNECTED, connectDetected, false); 
    document.addEventListener(WL.Events.WORKLIGHT_IS_DISCONNECTED, disconnectDetected , false);
}

function disconnectDetected(){
    var output = new Date() + "<hr />disconnectDetected";
    console.log(output);
}

function connectDetected(){
    var output = new Date() + "<hr />connectDetected";  
    console.log(output);
}

function setHeartBeatInterval(interval){

    WL.Client.setHeartBeatInterval(interval);
}
4

1 回答 1

0

WORKLIGHT_IS_CONNECTED并且WORKLIGHT_IS_DISCONNECTED仅在服务器状态更改时才被解雇。

因此,如果您向服务器发送请求,然后由于某种原因无法访问,_DISCONNCETED 事件将被触发。如果您随后发送请求并且服务器被成功 ping,则 _CONNECTED 事件将被触发。

于 2015-05-09T15:01:50.407 回答