1、引入highCharts的js
<script type="text/javascript" src="${resource(dir: 'js', file: 'jquery-1.6.js')}"></script> <script type="text/javascript" src="${resource(dir: 'js', file: 'highcharts/highcharts.js')}"></script> <script type="text/javascript" src="${resource(dir: 'js', file: 'highcharts/modules/exporting.js')}"></script>
?2、通过MainController中的方法计算mem
package hf import grails.converters.JSON class MainController { def calc = { Runtime runtime = Runtime.getRuntime(); Process process = runtime.exec("tasklist /fo csv"); int i = 0; def list = []; process.inputStream.eachLine {String line -> if (i >= 1) { String[] p = line.split(/","/) Mem mem = new Mem(); mem.name = p[0].trim().replaceAll("\"",""); mem.pid = p[1].trim() as int; mem.memSize = (p[4].replaceAll("\"","").replaceAll(",","").replaceAll(" ","").replaceAll("K","")) as int; println "name:"+mem.name+";pid:"+mem.pid+";memSize:"+mem.memSize; def map = [:]; map.id=mem.id; map.pid = mem.pid; map.name = mem.name; map.memSize = mem.memSize; list.add(map); } i++; } return render(list as JSON); } }
?3、在web页面中用$.post去取得数据
$(document).ready(function() { $.post("${createLink(controller:'main',action:'calc')}", {type:'init'}, function(data) { //进程名 var memNames = new Array(); //进程使用的内存 var memValues = new Array(); jQuery.each(data, function(index,mem) { memNames[index] = mem.name; memValues[index] = mem.memSize/1024; }); //alert(data); //alert(memValues) showData(memNames,memValues); }); });
?4、html中div的设置
<div style="width:500px;height:500px;overflow:auto;"> <div id="container" style="width:6000px;height:400px;margin:0 auto;"></div> </div>
?5、用highCharts显示数据
function showData(mNames,mValues) { chart = new Highcharts.Chart({ chart: { renderTo: 'container', defaultSeriesType: 'line', marginRight: 130, marginBottom: 50 }, title: { text: '电脑性能', x: -20 //center }, subtitle: { text: '我的电脑性能', x: -20 }, //X轴 xAxis: { title:{ text:'进程名' }, categories: mNames }, //y轴 yAxis: { title: { text: '内存使用(MB)' }, //y=0 plotLines: [ { value: 0, width: 2, color: '#000000' } ] }, tooltip: { formatter: function() { return '<b>' + this.series.name + '</b><br/>' + this.x + ': ' + this.y + 'M'; } }, //右边的提示 legend: { layout: 'vertical', align: 'right', verticalAlign: 'top', x: -10, y: 100, borderWidth: 0 }, series: [ { name: '内存使用', data: mValues } ] }); }
?6,最终的结果
1 楼
葬雪晴
2011-09-07
也是不动的东西到底端了?