新手小白!最近遇到一个问题,项目要获取本机的CPU和内存的使用情况,用的是ajax获取数据,插件用的Echarts,点击CPU监控会出现正确的line图,再点击内存监控也会出现正确的line图,但是此时再点击CPU监控,这时候line图会卡住,同时在firefox中报了一个错: Error: `setOption` should not be called during main process.谷歌不会报错.CPU监控代码如下:
setInterval(function (){
$.ajax({
type: "POST",
async: false,
url: "${basepath}cpuguanli/perUseInfoEchart.action",
data: {type:'line'},
success: function(result){
$.each(result.cpu,function(k,v){
var ddd=[];
for(var i=1;i<120;i++){
ddd.push(data[k][i]);
}
var num=(v.Combined).substring(0,(v.Combined).length-1);
ddd.push(Math.floor(num));
data[k]=ddd;
cpu_option.series[0].data=data[k];
cpu_option.yAxis.max=100;
cpu_option.title.text="CPU"+(k+1)+" 使用率"+num+"%";
cpu_echarts[k].setOption(cpu_option);
});
},
error: function(data) {
alert("数据加载失败");
return;
}
});
},1000);
内存监控代码如下:
setInterval(function (){
$.ajax({
type: "POST",
async:true,
url: "${basepath}memoryguanli/memoryInfoEchart.action",
data: {type:'line'},
success: function(result){
$.each(result.memory,function(k,v){
var ddd=[];
for(var i=1;i<120;i++){
ddd.push(data[0][i]);
}
var num=(v.used_percent).substring(0,(v.used_percent).length-1);
ddd.push(Math.floor(num));
data[0]=ddd;
memory_option.series[0].data=data[0];
memory_option.title.subtext="内存总量:" + v.memory_total + "MB" + "\t内存使用量:" + v.memory_used + "MB" + "\t内存剩余量:" + v.memory_free + "MB";
memory_option.yAxis.max=100;
memory_option.title.text="MEMORY使用的总内存"+num+"%";
memory_echarts[0].setOption(memory_option); });
},
error: function(data) {
alert("数据加载失败");
return;
}
});
},1000);
}
setInterval(function (){
$.ajax({
type: "POST",
async: false,
url: "${basepath}cpuguanli/perUseInfoEchart.action",
data: {type:'line'},
success: function(result){
$.each(result.cpu,function(k,v){
var ddd=[];
for(var i=1;i<120;i++){
ddd.push(data[k][i]);
}
var num=(v.Combined).substring(0,(v.Combined).length-1);
ddd.push(Math.floor(num));
data[k]=ddd;
cpu_option.series[0].data=data[k];
cpu_option.yAxis.max=100;
cpu_option.title.text="CPU"+(k+1)+" 使用率"+num+"%";
cpu_echarts[k].setOption(cpu_option);
});
},
error: function(data) {
alert("数据加载失败");
return;
}
});
},1000);
内存监控代码如下:
setInterval(function (){
$.ajax({
type: "POST",
async:true,
url: "${basepath}memoryguanli/memoryInfoEchart.action",
data: {type:'line'},
success: function(result){
$.each(result.memory,function(k,v){
var ddd=[];
for(var i=1;i<120;i++){
ddd.push(data[0][i]);
}
var num=(v.used_percent).substring(0,(v.used_percent).length-1);
ddd.push(Math.floor(num));
data[0]=ddd;
memory_option.series[0].data=data[0];
memory_option.title.subtext="内存总量:" + v.memory_total + "MB" + "\t内存使用量:" + v.memory_used + "MB" + "\t内存剩余量:" + v.memory_free + "MB";
memory_option.yAxis.max=100;
memory_option.title.text="MEMORY使用的总内存"+num+"%";
memory_echarts[0].setOption(memory_option); });
},
error: function(data) {
alert("数据加载失败");
return;
}
});
},1000);
}
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货