HTML5/Javascript上交所限制调用次数
HTML5/Javascript SSE limit number of calls
我对使用 js 和 HTML5 的 ServerSend 事件相当陌生。我有一个基本设置,我的页面调用 API,API 执行命令行,我试图实时显示此调用的结果(api 是在服务器上调用脚本,我正在为控制台输出提供服务)。
我的问题是,如果页面保持打开状态,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 秒调用一次。
如有任何帮助,我们将不胜感激!谢谢!
在第一次运行之后通过source.close();
关闭连接怎么样?
我对使用 js 和 HTML5 的 ServerSend 事件相当陌生。我有一个基本设置,我的页面调用 API,API 执行命令行,我试图实时显示此调用的结果(api 是在服务器上调用脚本,我正在为控制台输出提供服务)。
我的问题是,如果页面保持打开状态,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 秒调用一次。
如有任何帮助,我们将不胜感激!谢谢!
在第一次运行之后通过source.close();
关闭连接怎么样?