• Echarts自动刷新数据


    1.Echarts自动刷新数据


    1.Echarts柱状图的正常配置
    注:声明了 myChart、test这两个都有用
    官方示例中myChart是声明在 function(ec)里面的
    <script src="http://cdn.staticfile.org/jquery/2.1.1-rc2/jquery.min.js"></script>
    <script src="http://echarts.baidu.com/build/dist/echarts.js"></script>
    <script type="text/javascript">
        var myChart;
        var test = 10
        // 路径配置
        require.config({
            paths: {
                echarts: 'http://echarts.baidu.com/build/dist'
            }
        });
        // 使用
        require(
            [
                'echarts',
                'echarts/chart/bar' // 使用柱状图就加载bar模块,按需加载
            ],
            function (ec) {
                // 基于准备好的dom,初始化echarts图表
                 myChart = ec.init(document.getElementById('divProgress'));
                var option = {
                    tooltip: {
                        show: true
                    },
                    animation: false,
                    legend: {
                        data: ['销量']
                    },
                    xAxis: [
                        {
                            type: 'category',
                            data: ["衬衫", "羊毛衫", "雪纺衫", "裤子", "高跟鞋", "袜子"]
                        }
                    ],
                    yAxis: [
                        {
                            type: 'value'
                        }
                    ],
                    series: [
                        {
                            "name": "销量",
                            "type": "bar",
                            "data": [5, 20, 40, 10, 10, 20]
                        }
                    ]
                };
                // 为echarts对象加载数据 
                myChart.setOption(option);
            }
        );
    </script>
    2.添加 refreshData函数
    在第一步在顶部声明的myChart和test都会在refreshData函数里面用上
    注:option.series[0].data = data;这句的格式最重要
    <script src="http://cdn.staticfile.org/jquery/2.1.1-rc2/jquery.min.js"></script>
    <script src="http://echarts.baidu.com/build/dist/echarts.js"></script>
    <script type="text/javascript">
        var myChart;
        var test = 10
        // 路径配置
        require.config({
            paths: {
                echarts: 'http://echarts.baidu.com/build/dist'
            }
        });
        // 使用
        require(
            [
                'echarts',
                'echarts/chart/bar' // 使用柱状图就加载bar模块,按需加载
            ],
            function (ec) {
                // 基于准备好的dom,初始化echarts图表
                 myChart = ec.init(document.getElementById('divProgress'));
                var option = {
                    tooltip: {
                        show: true
                    },
                    animation: false,
                    legend: {
                        data: ['销量']
                    },
                    xAxis: [
                        {
                            type: 'category',
                            data: ["衬衫", "羊毛衫", "雪纺衫", "裤子", "高跟鞋", "袜子"]
                        }
                    ],
                    yAxis: [
                        {
                            type: 'value'
                        }
                    ],
                    series: [
                        {
                            "name": "销量",
                            "type": "bar",
                            "data": [5, 20, 40, 10, 10, 20]
                        }
                    ]
                };
                // 为echarts对象加载数据 
                myChart.setOption(option);
            }
        );
        
    function refreshData(data){
         if(!myChart){
              return;
         }
         
         //更新数据
          var option = myChart.getOption();
          option.series[0].data = data;   
          myChart.setOption(option);    
    }
    </script>
    3.使用window.setInterval 来实现自动刷新数据
    用了jQuery的,所以在第一句就引用了jQuery
    <script src="http://cdn.staticfile.org/jquery/2.1.1-rc2/jquery.min.js"></script>
    <script src="http://echarts.baidu.com/build/dist/echarts.js"></script>
    <script type="text/javascript">
        var myChart;
        var test = 10
        // 路径配置
        require.config({
            paths: {
                echarts: 'http://echarts.baidu.com/build/dist'
            }
        });
        // 使用
        require(
            [
                'echarts',
                'echarts/chart/bar' // 使用柱状图就加载bar模块,按需加载
            ],
            function (ec) {
                // 基于准备好的dom,初始化echarts图表
                 myChart = ec.init(document.getElementById('divProgress'));
                var option = {
                    tooltip: {
                        show: true
                    },
                    animation: false,
                    legend: {
                        data: ['销量']
                    },
                    xAxis: [
                        {
                            type: 'category',
                            data: ["衬衫", "羊毛衫", "雪纺衫", "裤子", "高跟鞋", "袜子"]
                        }
                    ],
                    yAxis: [
                        {
                            type: 'value'
                        }
                    ],
                    series: [
                        {
                            "name": "销量",
                            "type": "bar",
                            "data": [5, 20, 40, 10, 10, 20]
                        }
                    ]
                };
                // 为echarts对象加载数据 
                myChart.setOption(option);
            }
        );
        
        //这里用setTimeout代替ajax请求进行演示
    window.setInterval(function () {
        var data = [test, 5, 10, 40, 20, 10];
       $.get("SQLTest.ashx",function(responseTxt,statusTxt,xhr)
       {
        test=responseTxt;
        //if (statusTxt == "success")alert(test);
        if (statusTxt == "error")
                alert("Error: " + xhr.status + ": " + xhr.statusText);
       });
        data = [test, 5, 10, 40, 20, 10];
        refreshData(data);       
    },3000);
     
    function refreshData(data){
         if(!myChart){
              return;
         }
         
         //更新数据
          var option = myChart.getOption();
          option.series[0].data = data;   
          myChart.setOption(option);    
    }
    </script>
    4.SQLTest.ashx
    1.ContentType设置为text/plain
    2.直接把需要返回的数据 write回来即可
    3.当然,在这里随便返回个<=100的整数都行,你完全可以在一个txt文档里面写个60,然后第三步中填上txt文档的路径。
    <%@ WebHandler Language="C#" Class="SQLTest" %>
    using System;
    using System.Web;
    using DAL;
    using System.Data;
    using System.Configuration;
    using System.Data.SqlClient;
    public class SQLTest : IHttpHandler {
        SQLHelper SQLAss = new SQLHelper();
        string StrCon = ConfigurationManager.ConnectionStrings["DatabaseTest"].ConnectionString;
        static int i=1;
        public void ProcessRequest (HttpContext context) 
        {
            context.Response.ContentType = "text/plain";
            string sqlstr = "SELECT Progress FROM T_EchartData1 WHERE Num LIKE '" + i.ToString() + "'";
            //SELECT Age FROM Person1 WHERE id = '2'  SQL可以用等号
            var dt = SQLAss.ExecuteQuery(sqlstr, CommandType.Text);//将读取的数据存到dt里面
            i++;
            if (i >= 6) i = 1;
            context.Response.Write(Convert.ToInt32(dt.Rows[0][0].ToString()));
        }
     
        public bool IsReusable {
            get {
                return false;
            }
        }
    }
  • 相关阅读:
    关于cocoapods中的一些报错解决方案
    基于 声网Agora SDK 实现 iOS 端的多人音视频互动
    AppStore中使用IDFA后提交应用的注意事项
    iOS打包测试和发布
    LLDB常用调试命令
    MRC与ARC区别以及五大内存区
    关于友盟分享和微信支付冲突的解决办法
    iOS开发集成支付宝支付、支付宝&微信支付
    关于iOS引导页图层的相关属性类
    遇见的奇葩问题
  • 原文地址:https://www.cnblogs.com/moonache/p/4661058.html
Copyright © 2020-2023  润新知