HTML5 / Javascript SSE限制通话次数

时间:2016-10-28 09:15:07

标签: javascript jquery html5 server-sent-events

我使用js和HTML5对ServerSend事件相当新。我有一个基本设置,我的页面调用API,API执行命令行,我试图实时显示此调用的结果(api在服务器上调用脚本,我&#39 ; m服务于控制台输出)。

我的问题是,如果页面保持打开状态,API会继续被调用。我想停止这种行为并且只调用一次API。我尝试使用布尔值只定义一次事件源,但没有运气。

这是我的js代码:

function liveExec($scenarioId){
    var $run = true;
    if ($run)
    {
        var source = new EventSource('/run/'+$scenarioId+'/1');
        source.onmessage = function(event) {
        document.getElementById("result").innerHTML += event.data + "<br>";
    };
    $run= false;
    }
}

点击按钮调用该功能。 这是我的访问日志:

127.0.0.1 - - [28/Oct/2016:11:09:06 +0200] "GET /run/1/1 HTTP/1.1" 200 2318
127.0.0.1 - - [28/Oct/2016:11:09:31 +0200] "GET /run/1/1 HTTP/1.1" 200 2318
127.0.0.1 - - [28/Oct/2016:11:09:56 +0200] "GET /run/1/1 HTTP/1.1" 200 2318
127.0.0.1 - - [28/Oct/2016:11:10:21 +0200] "GET /run/1/1 HTTP/1.1" 200 2318
127.0.0.1 - - [28/Oct/2016:11:10:47 +0200] "GET /run/1/1 HTTP/1.1" 200 2317

由于某种原因,可视功能每25秒调用一次。

任何帮助将不胜感激!谢谢!

1 个答案:

答案 0 :(得分:1)

首次运行后,通过iframe关闭连接怎么办?