中断功能
Interrupting a Function
我们使用gauge Google Chart小程序来通过AJAX可视化监控SOAP接口上的一些消息传输失败率。
我的愿望是,当失败率达到50%或更高时,页面的背景会闪烁红色和白色,而当失败率不高时,则只有纯白色背景。我们正在用两个独立的仪表监控两个SOAP接口,所以它们在打开或关闭闪烁时不能相互踩在一起。为此,我可以让它打开但不能关闭,并且每5秒(AJAX刷新的间隔)拨号超过50,它将重新调用闪烁循环,该循环最终会将闪烁间隔提高到如此之高,以至于页面看起来像闪光灯。
我承认这一点——我在javascript方面很糟糕。
到目前为止,我拥有的是:
对于闪烁本身:
function changecolors(on) {
x = 1;
if (on === "on") {
setInterval(change, 500);
} else {
x = 2;
document.body.style.background = "white";
}
}
function change() {
if (x === 1) {
color = "red";
x = 2;
} else {
color = "white";
x = 1;
}
document.body.style.background = color;
}
仪表:
function drawFAIL1() {
var data = google.visualization.arrayToDataTable([
['Label', 'Value'],
['Percent', 0]
]);
var options = {
width: 600,
height: 320,
redFrom: 50,
redTo: 100,
yellowFrom: 25,
yellowTo: 50,
minorTicks: 5,
max: 100
};
var chart = new google.visualization.Gauge(document.getElementById('fail1'));
chart.draw(data, options);
function getData() {
$.ajax({
url: 'fail1.php',
success: function(response) {
data.setValue(0, 1, response);
chart.draw(data, options);
setTimeout(getData, 5000);
if (response > 49) {
changecolors("on");
} else {
changecolors("off");
}
}
});
}
getData();
}
function drawFAIL2() {
var data = google.visualization.arrayToDataTable([
['Label', 'Value'],
['Percent', 0]
]);
var options = {
width: 600,
height: 320,
redFrom: 50,
redTo: 100,
yellowFrom: 25,
yellowTo: 50,
minorTicks: 5,
max: 100
};
var chart = new google.visualization.Gauge(document.getElementById('fail2'));
chart.draw(data, options);
function getData() {
$.ajax({
url: 'fail2.php',
success: function(response) {
data.setValue(0, 1, response);
chart.draw(data, options);
setTimeout(getData, 5000);
if (response > 49) {
changecolors("on");
} else {
changecolors("off");
}
}
});
}
getData();
}
您可以通过清除间隔来取消它,但您需要保留对ID的引用,这可以在一个简单的变量中完成:例如,请参阅changeColors函数中使用的intervalChangeColors变量
var intervalChangeColors;
function changecolors(on) {
x = 1;
if (on === "on") {
intervalChangeColors = setInterval(change, 500);
} else {
clearInterval(intervalChangeColors);
x = 2;
document.body.style.background = "white";
}
}
参考:http://www.w3schools.com/jsref/met_win_clearinterval.asp
一些简单的代码改进:
更改
if (response > 49) {
changecolors("on");
} else {
changecolors("off");
}
至:
changeColors(response > 49)
和
if (on === "on")
至
if (on)
布尔值很好:)
相关文章:
- 添加文字和评论功能更新Div
- JavaScript打印功能使日历停止工作
- 每当您在选择器内移动鼠标时,悬停功能就会重复
- 如何防止网页加载后自动启动功能
- 除修剪外的其他功能
- 悬停功能触发器
- 使用angularjs向浏览器发送servlet响应(下载功能)
- 删除CKEditor工具栏按钮,但不删除功能
- 异步facebook功能
- 中断功能
- 在单模式中断功能中使用Ajax渲染部分
- 功能中断 iPhone 的脚本(新手)
- 使用带有“慢速”选项的切换时功能中断
- 高图表.js添加鼠标悬停功能或悬停状态(实现中断图表?
- 搜索功能在 jquery 数据表中中断
- Window.Print() 功能在 IE7 中中断,屏幕带有分页
- JavaScript功能在web上中断,但在文件中有效
- Jasny-Bootstrap显示菜单中断了导航栏折叠和导航栏切换功能
- 当运行此功能时,网站会中断
- 为什么这个功能版本的快速排序会中断?我该如何修复它