前端开启自动刷新功能

场景

页面有一个折线图显示当前CPU利用率,需要有一个开关控制,是否每隔几秒刷新一次,查看CPU利用率的波动状态

 

使用语言框架

thinkphp ,layui,echarts

 

页面效果

 

 

相关代码

html代码

1 <div class="layui-form-item" >
2   <div class="layui-input-block" style="margin-left:80px;">
3       <input type="checkbox" name="autoFresh" id="autoFresh" lay-skin="primary" title="自动刷新" lay-filter="autoFresh">
4   </div>
5 </div>
1 <div class="layui-form-item">
2     <div id="speedChart" style="width:50%;text-align:center;float: left" class="layui-col-xs12 layui-col-sm6 layui-col-md6">
3         <!-- 为 ECharts 准备一个具备大小(宽高)的 DOM -->
4         <div id="speedChartMain" style="height: 300px;"></div>
5         <label>CPU利用率(最近1分钟)</label>
6     </div>
7 </div>

js代码


 1      //-----------CPU使用情况------------//
 2     // 基于准备好的dom,初始化echarts实例
 3     var myChart = echarts.init(document.getElementById('speedChartMain'));
 4     option = {
 5     tooltip: {
 6         trigger: 'axis',
 7         formatter: function( params ) {
 8             return params[0].data+"%";
 9         }
10     },
11     toolbox: {
12         show: false,
13         feature: {
14             saveAsImage: {}
15         }
16     },
17     xAxis: {
18         type: 'category',
19         boundaryGap: false,
20         data: ['0s', '5s', '10s', '15s', '20s', '25s', '30s', '35s','40s', '45s', '50s', '55s', '60s']
21     },
22     yAxis: {
23         max:100,
24         type: 'value',
25         axisLabel: {
26             formatter: '{value}%'
27         }
28     },
29     series: [
30         {
31             name: 'CPU使用情况',
32             type: 'line',
33             itemStyle: {normal: {areaStyle: {color: '#b7d5df'}}},
34             data: []
35         }
36     ]
37     };
    // 使用刚指定的配置项和数据显示图表。
    myChart.setOption(option);
 1 //定义定时器变量
 2     var timercpu
 3     //获取CPU利用率
 4     function cpuInfo(_autoFresh){
 5          $.ajax({
 6             url:"__CONTROLLER__/ajaxCpuinfo?random="+Math.random(),
 7             type: 'post',
 8             dataType: 'json',
 9             success:function(data){
10                 // 填入数据
11                 myChart.setOption({
12                         series: [{
13                             data: data.data
14                         }]
15                 });                        
16             }
17          });
18          if(_autoFresh === true){
19             if(timercpu)
20                    clearTimeout(timercpu)  
21                    //每一秒中重新加载cpuInfo()方法      
22                   timercpu = setTimeout(function(){
23                       cpuInfo(true);
24                   },5000);
25          } 
26     }
 1   layui.use(['form','element', 'layer'], function () {
 2         var element = layui.element;
 3         var layer = layui.layer;
 4         var form = layui.form();
 5         form.on('checkbox(autoFresh)', function (data) {
 6             if(data.elem.checked === true){
 7                 cpuInfo(true);
 8             }else{
 9                 clearTimeout(timercpu);
10             }
11         });
12     });

 

 

 

posted @ 2020-06-24 16:28  特战小鸟nmx  阅读(626)  评论(0编辑  收藏  举报