Javascript Can';t强制高速表归零
我正在努力使用。我基本上是在装接线表。如果连接良好,则仪表将在30和100之间滴答作响。如果连接返回除4&200之外的任何内容(Ajax调用),则它应该降为零。我正在接电话……服务器启动后,一切都很好。当我关闭Apache时,它不会变为零。我已经在函数(图表)上测试了几个sceanrios,看看它是否简单(我确信它仍然简单,我只是没有看到)。什么都没起作用。我已将图表点删除为0。但它仍然不会归零。有什么建议吗?上帝啊,我希望如此。我很想明天把它包起来,这样我就可以在经过一些调整后用它来工作了Javascript Can';t强制高速表归零,javascript,ajax,highcharts,meter,Javascript,Ajax,Highcharts,Meter,我正在努力使用。我基本上是在装接线表。如果连接良好,则仪表将在30和100之间滴答作响。如果连接返回除4&200之外的任何内容(Ajax调用),则它应该降为零。我正在接电话……服务器启动后,一切都很好。当我关闭Apache时,它不会变为零。我已经在函数(图表)上测试了几个sceanrios,看看它是否简单(我确信它仍然简单,我只是没有看到)。什么都没起作用。我已将图表点删除为0。但它仍然不会归零。有什么建议吗?上帝啊,我希望如此。我很想明天把它包起来,这样我就可以在经过一些调整后用它来工作了 &
<!DOCTYPE HTML>
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=UTF-8" >
<title>Sales Meter</title>
<script type="text/javascript" src="jquery-1.8.2.min.js"></script>
<script type="text/javascript">
var flag;
var xmlhttp;
var url="http://192.168.0.5/ajax_info.txt"+'?_dc='+(new Date()).getTime();
//ajax call
function loadXMLDoc(url, cfunc){
if(window.XMLHttpRequest){
xmlhttp=new XMLHttpRequest();
}
else {
xmlhttp=new ActiveObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange=cfunc;
xmlhttp.open("GET",url, true);
xmlhttp.send();
}
function myFunction(){
loadXMLDoc(url, function(){
if(xmlhttp.readyState==4 && xmlhttp.status==200){
flag = 1;
}
});
}
$(function () {
var chart = new Highcharts.Chart({
chart: {
renderTo: 'container',
type: 'gauge',
plotBackgroundColor: null,
plotBackgroundImage: null,
plotBorderWidth: 0,
plotShadow: false
},
title: {
text: 'Sales-O-Meter'
},
pane: {
startAngle: -150,
endAngle: 150,
background: [{
backgroundColor: {
linearGradient: { x1: 0, y1: 0, x2: 0, y2: 1 },
stops: [
[0, '#FFF'],
[1, '#333']
]
},
borderWidth: 0,
outerRadius: '109%'
}, {
backgroundColor: {
linearGradient: { x1: 0, y1: 0, x2: 0, y2: 1 },
stops: [
[0, '#333'],
[1, '#FFF']
]
},
borderWidth: 1,
outerRadius: '107%'
}, {
// default background
}, {
backgroundColor: '#DDD',
borderWidth: 0,
outerRadius: '105%',
innerRadius: '103%'
}]
},
// the value axis
yAxis: {
min: 0,
max: 100,
minorTickInterval: 'auto',
minorTickWidth: 1,
minorTickLength: 2.5,
minorTickPosition: 'inside',
minorTickColor: '#666',
tickPixelInterval: 15,
tickWidth: 1,
tickPosition: 'inside',
tickLength: 5,
tickColor: '#666',
labels: {
step: 5,
rotation: 'auto'
},
title: {
text: 'sales/min'
},
plotBands: [{
from: 0,
to: 10,
color: '#DF5353' // green
}, {
from: 10,
to: 20,
color: '#DDDF0D' // yellow
}, {
from:20,
to: 100,
color: '#55BF3B' // red
}]
},
series: [{
name: 'Speed',
data: [80],
tooltip: {
valueSuffix: ' sales/sec'
}
}]
},
// Add some life
function (chart) {
flag = 0;
myFunction();
setInterval(function () {
if(flag==1){
var point = chart.series[0].points[0],
newVal,
inc = Math.round((Math.random() - .5) * 20);
newVal = point.y + inc;
if (newVal < 0 || newVal > 100) {
newVal = point.y - inc;
}
point.update(newVal);
}
else{
var point = chart.series[0].points[0],
newVal = 0,
inc = 0;
point.update(newVal);
}
}, 1000);
});
});
</script>
</head>
<body>
<script src="highcharts.js"></script>
<script src="highcharts-more.js"></script>
<!--<script src="exporting.js"></script>-->
<div id="container" style="width: 500px; height: 400px; margin: 0 auto"></div>
</body>
</html>
销售表
var标志;
var-xmlhttp;
变量url=”http://192.168.0.5/ajax_info.txt“+”?_dc=”+(新日期()).getTime();
//ajax调用
函数loadXMLDoc(url,cfunc){
if(window.XMLHttpRequest){
xmlhttp=新的XMLHttpRequest();
}
否则{
xmlhttp=新的ActiveObject(“Microsoft.xmlhttp”);
}
onreadystatechange=cfunc;
open(“GET”,url,true);
xmlhttp.send();
}
函数myFunction(){
loadXMLDoc(url,函数(){
if(xmlhttp.readyState==4&&xmlhttp.status==200){
flag=1;
}
});
}
$(函数(){
var图表=新的Highcharts.图表({
图表:{
renderTo:'容器',
类型:“仪表”,
plotBackgroundColor:null,
plotBackgroundImage:空,
绘图边框宽度:0,
plotShadow:false
},
标题:{
文字:“销售计量表”
},
窗格:{
startAngle:-150,
端角:150,
背景:[{
背景颜色:{
线性半径:{x1:0,y1:0,x2:0,y2:1},
停止:[
[0,#FFF'],
[1, '#333']
]
},
边框宽度:0,
外层:109%
}, {
背景颜色:{
线性半径:{x1:0,y1:0,x2:0,y2:1},
停止:[
[0, '#333'],
[1'#FFF']
]
},
边框宽度:1,
外层:107%
}, {
//默认背景
}, {
背景颜色:“#DDD”,
边框宽度:0,
外层:105%,
内半径:“103%”
}]
},
//价值轴
亚克斯:{
分:0,,
最高:100,
minorTickInterval:“自动”,
minorTickWidth:1,
minorTickLength:2.5,
minorTickPosition:“内部”,
minorTickColor:“#666”,
像素间隔:15,
宽度:1,
位置:'内部',
长度:5,
勾选颜色:'#666',
标签:{
步骤:5,
旋转:“自动”
},
标题:{
文本:“销售额/分钟”
},
绘图带:[{
起:0,,
致:10,,
颜色:'#DF5353'//绿色
}, {
起:10,,
致:20,,
颜色:'#DDDF0D'//黄色
}, {
起:20,,
致:100,,
颜色:'#55BF3B'//红色
}]
},
系列:[{
名称:“速度”,
数据:[80],
工具提示:{
valueSuffix:'销售额/秒'
}
}]
},
//增添活力
功能(图表){
flag=0;
myFunction();
setInterval(函数(){
如果(标志==1){
变量点=图表。系列[0]。点[0],
纽瓦尔,
inc=数学四舍五入((数学随机数()-.5)*20);
newVal=点y+inc;
如果(newVal<0 | | newVal>100){
newVal=point.y-inc;
}
更新点(newVal);
}
否则{
变量点=图表。系列[0]。点[0],
newVal=0,
inc=0;
更新点(newVal);
}
}, 1000);
});
});
看起来您需要在SETI thermal函数中调用my函数,因为需要调用它来设置标志
function (chart) {
flag = 0;
setInterval(function () {
myFunction();
if(flag==1){