Enford 5 年之前
父節點
當前提交
d35db49c6d

文件差異過大導致無法顯示
+ 1991 - 0
src/main/webapp/static/echarts-2.2.7/test/allchart/all.html


+ 191 - 0
src/main/webapp/static/echarts-2.2.7/test/allchart/all.js

@@ -0,0 +1,191 @@
+var myChart = [];
+var domCode = $("[md='sidebar-code']");
+var domGraphic = $("[md='graphic']");
+var domMain = $("[md='main']");
+var domMessage = $("[md='wrong-message']");
+var iconResize = $("[md='icon-resize']");
+var needRefresh = false;
+
+function findIdxFromEvent(event) {
+    event = event || window.event;
+    return findIdx(event.target || event.srcElement);
+}
+function findIdx(d) {
+    var p = d;
+    while (p.className != 'container-fluid') {
+        p = p.parentElement;
+    }
+    return $(p).attr('idx');
+}
+var idx;
+function autoResize(event) {
+    idx = findIdxFromEvent(event);
+    if (iconResize[idx].className == 'icon-resize-full') {
+        focusCode();
+        iconResize[idx].className = 'icon-resize-small';
+    }
+    else {
+        focusGraphic();
+        iconResize[idx].className = 'icon-resize-full';
+    }
+}
+
+function focusCode() {
+    domCode[idx].className = 'span8 ani';
+    domGraphic[idx].className = 'span4 ani';
+}
+
+function focusGraphic() {
+    domCode[idx].className = 'span4 ani';
+    domGraphic[idx].className = 'span8 ani';
+    if (needRefresh) {
+        myChart[idx].showLoading();
+        setTimeout(refresh, 1000);
+    }
+}
+
+var domTextarea = $("[md='code']");
+var editor = [];
+for (var i = 0, l = domTextarea.length; i < l; i++) {
+    editor[i] = CodeMirror.fromTextArea(
+        domTextarea[i],
+        { lineNumbers: true }
+    );
+    editor[i].setOption("theme", 'monokai');
+    editor[i].on('change', function (){needRefresh = true;});
+}
+
+function refresh(isBtnRefresh, idd){
+    if (isBtnRefresh) {
+        idx = idd;
+        needRefresh = true;
+        focusGraphic();
+        return;
+    }
+    needRefresh = false;
+    if (myChart[idx] && myChart[idx].dispose) {
+        myChart[idx].dispose();
+    }
+    myChart[idx] = echarts.init(domMain[idx]);
+    (new Function (editor[idx].doc.getValue().replace(
+        'option', 'option[' + idx + ']'))
+    )()
+    myChart[idx].setOption(option[idx], true);
+    domMessage[idx].innerHTML = '';
+}
+
+function refreshAll() {
+    for (var i = 0, l = myChart.length; i < l; i++) {
+        (new Function (editor[i].doc.getValue().replace(
+            'option', 'option[' + i + ']'))
+        )();
+        myChart[i].setOption(option[i], true);
+        domMessage[i].innerHTML = '';
+    }
+}
+
+var developMode = false;
+if (developMode) {
+    window.esl = null;
+    window.define = null;
+    window.require = null;
+    (function () {
+        var script = document.createElement('script');
+        script.async = true;
+
+        script.src = '../../doc/asset/js/esl/esl.js';
+        if (script.readyState) {
+            script.onreadystatechange = fireLoad;
+        }
+        else {
+            script.onload = fireLoad;
+        }
+        (document.getElementsByTagName('head')[0] || document.body).appendChild(script);
+        
+        function fireLoad() {
+            script.onload = script.onreadystatechange = null;
+            setTimeout(loadedListener,100);
+        }
+        function loadedListener() {
+            // for develop
+            require.config({
+                packages: [
+                    {
+                        name: 'echarts',
+                        location: '../../src',
+                        main: 'echarts'
+                    },
+                    {
+                        name: 'zrender',
+                        //location: 'http://ecomfe.github.io/zrender/src',
+                        location: '../../../zrender/src',
+                        main: 'zrender'
+                    }
+                ]
+            });
+            launchExample();
+        }
+    })();
+}
+else {
+    // for echarts online home page
+    require.config({
+        paths:{ 
+            echarts: '../../build/dist'
+        }
+    });
+    launchExample();
+}
+
+var isExampleLaunched;
+function launchExample() {
+    if (isExampleLaunched) {
+        return;
+    }
+
+    // 按需加载
+    isExampleLaunched = 1;
+    require(
+        [
+            'echarts',
+            'echarts/chart/line',
+            'echarts/chart/bar',
+            'echarts/chart/scatter',
+            'echarts/chart/k',
+            'echarts/chart/pie',
+            'echarts/chart/radar',
+            'echarts/chart/force',
+            'echarts/chart/chord',
+            'echarts/chart/map',
+            'echarts/chart/gauge',
+            'echarts/chart/funnel',
+            'echarts/chart/venn',
+            'echarts/chart/treemap',
+            'echarts/chart/tree',
+            'echarts/chart/eventRiver'
+        ],
+        requireCallback
+    );
+}
+
+var echarts;
+var option = {};
+function requireCallback (ec) {
+    echarts = ec;
+    if (myChart.length > 0) {
+        for (var i = 0, l = myChart.length; i < l; i++) {
+            myChart[i].dispose && myChart[i].dispose();
+        }
+    }
+    myChart = [];
+    for (var i = 0, l = domMain.length; i < l; i++) {
+        myChart[i] = echarts.init(domMain[i]);
+    }
+    refreshAll();
+    
+    window.onresize = function (){
+        for (var i = 0, l = myChart.length; i < l; i++) {
+            myChart[i].resize && myChart[i].resize();
+        }
+    };
+}

+ 60 - 0
src/main/webapp/static/echarts-2.2.7/test/heatmap.html

@@ -0,0 +1,60 @@
+<!Doctype html>
+<html>
+<head>
+    <script src="../doc/asset/js/esl/esl.js"></script>
+    <meta charset="utf-8">
+</head>
+<style>
+    html, body {
+        height: 100%;
+        margin: 0px;
+    }
+    #main {
+        width: 100%;
+        height: 100%;
+    }
+</style>
+<body>
+    <div id="main"></div>
+</body>
+<script>
+    require.config({
+        packages: [{
+            name: 'echarts',
+            location: '../src',
+            main: 'echarts'
+        }, {
+            name: 'zrender',
+            location: '../../zrender/src',
+            main: 'zrender'
+        }]
+    });
+
+    var data = [];
+    for (var i = 0; i < 1000; ++i) {
+        data.push([Math.random() * 400, Math.random() * 300, Math.random()]);
+    }
+    for (var i = 0; i < 100; ++i) {
+        data.push([Math.random() * 20 + i / 2 + 100, 
+            Math.random() * 20 + 200, Math.random()]);
+    }
+    for (var i = 0; i < 100; ++i) {
+        data.push([Math.random() * 20 + i / 2 + 300, 
+            Math.random() * 20 - i / 3 + 200, Math.random()]);
+    }
+    require(['echarts', 'echarts/chart/heatmap'], function (echarts, Heatmap) {
+        var myChart = echarts.init(document.getElementById('main'));
+        myChart.setOption({
+            series: [{
+                data: data,
+                type: 'heatmap',
+                name: 'name',
+                gradientColors: [
+                  'pink', 'orange', 'green'
+                ]
+            }]
+        });
+    });
+
+</script>
+</html>

+ 127 - 0
src/main/webapp/static/echarts-2.2.7/test/kdtree.html

@@ -0,0 +1,127 @@
+<!Doctype html>
+<html>
+<head>
+    <script src="http://s1.bdstatic.com/r/www/cache/ecom/esl/1-8-8/esl.js"></script>
+    
+    <script src="http://ubilabs.github.io/kd-tree-javascript/kdTree.js"></script>
+
+    <meta charset="utf-8">
+</head>
+<style>
+    html, body {
+        height: 100%;
+        margin: 0px;
+    }
+</style>
+<body>
+    <canvas id="main"></canvas>
+</body>
+<script>
+    require.config({
+        packages: [{
+            name: 'echarts',
+            location: '../src',
+            main: 'echarts'
+        }, {
+            name: 'zrender',
+            location: '../../zrender/src',
+            main: 'zrender'
+        }]
+    });
+
+    require(['echarts/data/KDTree'], function (KDTree) {
+        var points = [];
+        var points2 = [];
+        var width = window.innerWidth;
+        var height = window.innerHeight;
+        var canvas = document.getElementById('main');
+        canvas.width = width;
+        canvas.height = height;
+        var ctx = canvas.getContext('2d');
+        for (var i = 0; i < 50000; i++) {
+            var point = [Math.round(width * Math.random()), Math.round(height * Math.random())];
+            points.push({
+                array: point
+            });
+            points2.push(point);
+        }
+
+        var time = performance.now();
+        var kdTree1 = new KDTree(points);
+        console.log(performance.now() - time);
+
+        var squaredDistance = function (a, b) {
+            a = a.array;
+            b = b.array;
+            return (a[0] - b[0]) * (a[0] - b[0]) + (a[1] - b[1]) * (a[1] - b[1]);
+        }
+        var squaredDistance2 = function (a, b) {
+            return (a[0] - b[0]) * (a[0] - b[0]) + (a[1] - b[1]) * (a[1] - b[1]);
+        }
+        var kdTree2 = new kdTree(points2, squaredDistance2, [0, 1]);
+        // Find nearest
+        var p2 = [Math.round(width * Math.random()), Math.round(height * Math.random())];
+        p = {
+            array: p2
+        };
+        var time = performance.now();
+        for (var i = 0; i < 50000; i++) {
+            var nearest = kdTree1.nearest(p, squaredDistance);
+        }
+        console.log(performance.now() - time);
+        console.log(p, nearest);
+
+        // Find nearst N
+        var nearestN = [];
+        var time = performance.now();
+        for (var i = 0; i < 50000; i++) {
+            var nearest = kdTree1.nearestN(p, 5, squaredDistance, nearestN);
+        }
+        console.log(performance.now() - time);
+        console.log(p.array, nearestN.map(function(a) {
+            return a.array;
+        }));
+
+        setTimeout(function () {
+            var time = performance.now();
+            for (var i = 0; i < 50000; i++) {
+                var nearest = kdTree2.nearest(p2, 5);
+            }
+            console.log(performance.now() - time);
+            console.log(p2, nearest.map(function(a) {
+                return a[0];
+            }));
+        }, 1000);
+
+        // var buildSplitLines = function (node, minx, miny, maxx, maxy) {
+        //     switch (node.axis) {
+        //         case 0:
+        //             var x = node.data[0];
+        //             ctx.moveTo(x + 0.5, miny);
+        //             ctx.lineTo(x + 0.5, maxy);
+        //             ctx.stroke();
+        //             node.left && buildSplitLines(node.left, minx, miny, node.data[0], maxy);
+        //             node.right && buildSplitLines(node.right, node.data[0], miny, maxx, maxy);
+        //             break;
+        //         case 1:
+        //             var y = node.data[1];
+        //             ctx.moveTo(minx, y + 0.5);
+        //             ctx.lineTo(maxx, y + 0.5);
+        //             ctx.stroke();
+        //             node.left && buildSplitLines(node.left, minx, miny, maxx, node.data[1]);
+        //             node.right && buildSplitLines(node.right, minx, node.data[1], maxx, maxy);
+        //             break;
+        //     }
+
+        // }
+        // ctx.fillStyle = 'black';
+        // buildSplitLines(kdTree1.root, 0, 0, width, height);
+
+        // ctx.fillStyle = 'red';
+        // for (var i = 0; i < points.length; i++) {
+        //     var p = points[i];
+        //     ctx.fillRect(p[0], p[1], 4, 4);
+        // }
+    })
+</script>
+</html>

+ 337 - 0
src/main/webapp/static/echarts-2.2.7/test/performance/option.js

@@ -0,0 +1,337 @@
+var randomDataLength = 10000;
+var randomData = (function (){
+    var l = [];
+    var len = randomDataLength;
+    while(len--) {
+        l.push(Math.round(Math.random()* 1000));
+    }
+    return l;
+})();
+
+function option(chartType, n) {
+    var opt = {
+        animation:false,
+        title : {
+            text: chartType + '性能测试',
+            subtext: '自动生成' + n + '数据'
+        },
+        tooltip : {
+            trigger: 'axis'
+        },
+        legend: {
+            data:['性能测试']
+        },
+        toolbox: {
+            show : true,
+            feature : {
+                mark : {show: true},
+                //dataZoom : {show: true},
+                dataView : {show: true, readOnly: false},
+                magicType : {show: true, type: ['line', 'bar']},
+                restore : {show: true},
+                saveAsImage : {show: true}
+            }
+        },
+        dataRange: {
+            min: 0,
+            max: 1000,
+            calculable : true,
+            color: ['orangered','yellow','lightskyblue']
+        },
+        series : [
+            {
+                name:'性能测试',
+                type: chartType,
+                mapType: 'world',
+                roam: true,
+                large:true,
+                data: function (){
+                    switch(chartType) {
+                        case 'scatter' :
+                            return scatterData(n);
+                        case 'k' :
+                            return kData(n);
+                        case 'radar' :
+                            return radarData(n);
+                        case 'pie' :
+                            return pieData(n);
+                        case 'map' :
+                            return mapData(n);
+                        default :
+                            var list = [];
+                            for (var i = 1; i <= n; i++) {
+                                list.push({
+                                    value : randomData[i % randomDataLength],
+                                    name : i
+                                });
+                            }
+                            return list;
+                    }
+                }()
+            }
+        ]
+    };
+    if (chartType == 'line' 
+        || chartType == 'bar' 
+        || chartType == 'k' 
+    ) {
+        opt.xAxis = [
+            {
+                type : 'category',
+                data :  function (){
+                    var list = [];
+                    for (var i = 1; i <= n; i++) {
+                        list.push(i);
+                    }
+                    return list;
+                }()
+            }
+        ];
+        opt.yAxis = [
+            {
+                type : 'value'
+            }
+        ];
+    }
+    else if (chartType == 'scatter') {
+        opt.xAxis = [
+            {
+                type : 'value'
+            }
+        ];
+        opt.yAxis = [
+            {
+                type : 'value'
+            }
+        ];
+    }
+    else if (chartType == 'radar') {
+        opt.polar = [
+           {
+               indicator : [
+                   { text: '1', max: 1000},
+                   { text: '2', max: 1000},
+                   { text: '3', max: 1000},
+                   { text: '4', max: 1000},
+                   { text: '3', max: 1000}
+                ]
+            }
+        ];
+    }
+    else if (chartType == 'chord') {
+        opt.series = chordSeries();
+    }
+    return opt;
+}
+
+function scatterData(n){
+    var list = [];
+    for (var i = 1; i <= n; i++) {
+        list.push([
+            i , randomData[i % randomDataLength]
+        ]);
+    }
+    return list;
+}
+function kData(n){
+    var list = [];
+    for (var i = 1; i <= n; i++) {
+        list.push([
+            randomData[i % randomDataLength],
+            randomData[(i+1) % randomDataLength],
+            randomData[(i+2) % randomDataLength],
+            randomData[(i+3) % randomDataLength]
+        ]);
+    }
+    return list;
+}
+
+function radarData(n){
+    var list = [];
+    n = n > 200 ? 200 : n;
+    for (var i = 1; i <= n; i++) {
+        list.push({
+            value : [
+                randomData[i % randomDataLength],
+                randomData[(i+1) % randomDataLength],
+                randomData[(i+2) % randomDataLength],
+                randomData[(i+3) % randomDataLength],
+                randomData[(i+4) % randomDataLength]
+            ],
+            name : i
+        });
+    }
+    return list;
+}
+
+function pieData(n){
+    var list = [];
+    n = n > 200 ? 200 : n;
+    for (var i = 1; i <= n; i++) {
+        list.push({
+            value : randomData[i % randomDataLength],
+            name : i
+        });
+    }
+    return list;
+}
+
+function chordSeries() {
+    return [
+        {
+            "name": "性能测试",
+            "type": "chord",
+            "showScaleText": false,
+            "data": [
+                {"name": "美国"},
+                {"name": "叙利亚反对派"},
+                {"name": "阿萨德"},
+                {"name": "伊朗"},
+                {"name": "塞西"},
+                {"name": "哈马斯"},
+                {"name": "以色列"},
+                {"name": "穆斯林兄弟会"},
+                {"name": "基地组织"},
+                {"name": "俄罗斯"},
+                {"name": "黎巴嫩什叶派"},
+                {"name": "土耳其"},
+                {"name": "卡塔尔"},
+                {"name": "沙特"},
+                {"name": "黎巴嫩逊尼派"}
+            ],
+            "matrix": [
+                [0,100,0,0,0,0,100,0,0,0,0,0,0,0,0],
+                [10,0,0,0,0,10,10,0,10,0,0,10,10,10,10],
+                [0,0,0,10,0,0,0,0,0,10,10,0,0,0,0],
+                [0,0,100,0,0,100,0,0,0,0,100,0,0,0,0],
+                [0,0,0,0,0,0,0,0,0,0,0,0,0,10,0],
+                [0,100,0,10,0,0,0,0,0,0,0,0,10,0,0],
+                [10,100,0,0,0,0,0,0,0,0,0,0,0,0,0],
+                [0,0,0,0,0,0,0,0,0,0,0,10,10,0,0],
+                [0,100,0,0,0,0,0,0,0,0,0,0,0,0,0],
+                [0,0,100,0,0,0,0,0,0,0,0,0,0,0,0],
+                [0,0,100,10,0,0,0,0,0,0,0,0,0,0,0],
+                [0,100,0,0,0,0,0,100,0,0,0,0,0,0,0],
+                [0,100,0,0,0,100,0,100,0,0,0,0,0,0,0],
+                [0,100,0,0,100,0,0,0,0,0,0,0,0,0,100],
+                [0,100,0,0,0,0,0,0,0,0,0,0,0,10,0]
+            ]
+        },
+        {
+            "name": "反对",
+            "type": "chord",
+            "showScaleText": false,
+            "data": [
+                {"name": "美国"},
+                {"name": "叙利亚反对派"},
+                {"name": "阿萨德"},
+                {"name": "伊朗"},
+                {"name": "塞西"},
+                {"name": "哈马斯"},
+                {"name": "以色列"},
+                {"name": "穆斯林兄弟会"},
+                {"name": "基地组织"},
+                {"name": "俄罗斯"},
+                {"name": "黎巴嫩什叶派"},
+                {"name": "土耳其"},
+                {"name": "卡塔尔"},
+                {"name": "沙特"},
+                {"name": "黎巴嫩逊尼派"}
+            ],
+            "matrix": [
+                [0,0,100,100,0,100,0,0,100,0,0,0,0,0,0],
+                [0,0,0,10,0,0,0,0,0,10,10,0,0,0,0],
+                [10,0,0,0,0,0,10,10,10,0,0,10,10,0,10],
+                [10,100,0,0,0,0,0,0,0,0,0,0,0,0,0],
+                [0,0,0,0,0,10,0,100,0,0,0,10,10,0,0],
+                [10,0,0,0,100,0,10,0,0,0,0,0,0,0,0],
+                [0,0,100,0,0,100,0,0,0,0,0,0,0,0,0],
+                [0,0,100,0,10,0,0,0,0,0,0,0,0,10,0],
+                [10,0,100,0,0,0,0,0,0,0,0,0,0,100,0],
+                [0,100,0,0,0,0,0,0,0,0,0,0,0,0,0],
+                [0,100,0,0,0,0,0,0,0,0,0,0,0,0,0],
+                [0,0,100,0,100,0,0,0,0,0,0,0,0,0,0],
+                [0,0,100,0,100,0,0,0,0,0,0,0,0,0,0],
+                [0,0,0,0,0,0,0,100,10,0,0,0,0,0,0],
+                [0,0,100,0,0,0,0,0,0,0,0,0,0,0,0]
+            ]
+        },
+        {
+            "name": "未表态",
+            "type": "chord",
+            "showScaleText": false,
+            "data": [
+                {"name": "美国"},
+                {"name": "叙利亚反对派"},
+                {"name": "阿萨德"},
+                {"name": "伊朗"},
+                {"name": "塞西"},
+                {"name": "哈马斯"},
+                {"name": "以色列"},
+                {"name": "穆斯林兄弟会"},
+                {"name": "基地组织"},
+                {"name": "俄罗斯"},
+                {"name": "黎巴嫩什叶派"},
+                {"name": "土耳其"},
+                {"name": "卡塔尔"},
+                {"name": "沙特"},
+                {"name": "黎巴嫩逊尼派"}
+            ],
+            "matrix": [
+                [0,0,0,0,100,0,0,100,0,0,0,0,0,0,0],
+                [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],
+                [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],
+                [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],
+                [10,0,0,0,0,0,0,0,0,0,0,0,0,0,0],
+                [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],
+                [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],
+                [10,0,0,0,0,0,0,0,0,0,0,0,0,0,0],
+                [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],
+                [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],
+                [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],
+                [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],
+                [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],
+                [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],
+                [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]
+            ]
+        }
+    ];
+}
+
+function mapData(n) {
+    var countryList = [
+        'Afghanistan','Angola','Albania','United Arab Emirates','Argentina','Armenia',
+        'French Southern and Antarctic Lands','Australia','Austria','Azerbaijan','Burundi',
+        'Belgium','Benin','Burkina Faso','Bangladesh','Bulgaria','The Bahamas',
+        'Bosnia and Herzegovina','Belarus','Belize','Bermuda','Bolivia','Brazil','Brunei',
+        'Bhutan','Botswana','Central African Republic','Canada','Switzerland','Chile','China',
+        'Ivory Coast','Cameroon','Democratic Republic of the Congo','Republic of the Congo',
+        'Colombia','Costa Rica','Cuba','Northern Cyprus','Cyprus','Czech Republic','Germany',
+        'Djibouti','Denmark','Dominican Republic','Algeria','Ecuador','Egypt','Eritrea','Spain',
+        'Estonia','Ethiopia','Finland','Fiji','Falkland Islands','France','Gabon','United Kingdom',
+        'Georgia','Ghana','Guinea','Gambia','Guinea Bissau','Equatorial Guinea','Greece',
+        'Greenland','Guatemala','French Guiana','Guyana','Honduras','Croatia','Haiti','Hungary',
+        'Indonesia','India','Ireland','Iran','Iraq','Iceland','Israel','Italy','Jamaica','Jordan',
+        'Japan','Kazakhstan','Kenya','Kyrgyzstan','Cambodia','South Korea','Kosovo','Kuwait',
+        'Laos','Lebanon','Liberia','Libya','Sri Lanka','Lesotho','Lithuania','Luxembourg','Latvia',
+        'Morocco','Moldova','Madagascar','Mexico','Macedonia','Mali','Myanmar','Montenegro',
+        'Mongolia','Mozambique','Mauritania','Malawi','Malaysia','Namibia','New Caledonia','Niger',
+        'Nigeria','Nicaragua','Netherlands','Norway','Nepal','New Zealand','Oman','Pakistan',
+        'Panama','Peru','Philippines','Papua New Guinea','Poland','Puerto Rico','North Korea',
+        'Portugal','Paraguay','Qatar','Romania','Russia','Rwanda','Western Sahara','Saudi Arabia',
+        'Sudan','South Sudan','Senegal','Solomon Islands','Sierra Leone','El Salvador','Somaliland',
+        'Somalia','Republic of Serbia','Suriname','Slovakia','Slovenia','Sweden','Swaziland',
+        'Syria','Chad','Togo','Thailand','Tajikistan','Turkmenistan','East Timor',
+        'Trinidad and Tobago','Tunisia','Turkey','United Republic of Tanzania','Uganda','Ukraine',
+        'Uruguay','United States of America','Uzbekistan','Venezuela','Vietnam','Vanuatu',
+        'West Bank','Yemen','South Africa','Zambia','Zimbabwe'
+    ];
+    var list = [];
+    for (var i = 0, l = countryList.length; i < l; i ++) {
+        list.push({
+            name : countryList[i],
+            value : randomData[(i + n) % randomDataLength]
+        });
+    }
+    return list;
+}

+ 30 - 0
src/main/webapp/static/echarts-2.2.7/test/performance/p.html

@@ -0,0 +1,30 @@
+<!DOCTYPE html>
+<html>
+<head>
+    <meta charset="utf-8" />
+    <title>Performance</title>
+    <script type="text/javascript" src="../../build/dist/echarts.js"></script>
+</head>
+<body>
+    <div id="main" style="width:100%;height:500px;border:1px solid green"></div>
+    <div>
+        <input id="round" value="5"/>次
+        <input id="count" value="2000"/>个数据
+        <select id='chart'>
+            <option value='line'>line</option>
+            <option value='bar'>bar</option>
+            <option value='scatter'>scatter</option>
+            <option value='k'>k</option>
+            <option value='pie'>pie</option>
+            <option value='radar'>radar</option>
+            <option value='chord'>chord</option>
+            <option value='map'>map</option>
+        </select>
+        <button id='run'>start</button>
+        <button id='auto-run'>auto start</button>
+    </div>
+    <div id="res">loading</div>
+    <script src="option.js" type="text/javascript"></script>
+    <script src="p.js" type="text/javascript"></script>
+</body>
+</html>

+ 173 - 0
src/main/webapp/static/echarts-2.2.7/test/performance/p.js

@@ -0,0 +1,173 @@
+var developMode = false;
+if (developMode) {
+    window.esl = null;
+    window.define = null;
+    window.require = null;
+    (function () {
+        var script = document.createElement('script');
+        script.async = true;
+
+        script.src = '../../doc/asset/js/esl/esl.js';
+        if (script.readyState) {
+            script.onreadystatechange = fireLoad;
+        }
+        else {
+            script.onload = fireLoad;
+        }
+        (document.getElementsByTagName('head')[0] || document.body).appendChild(script);
+        
+        function fireLoad() {
+            script.onload = script.onreadystatechange = null;
+            setTimeout(loadedListener,100);
+        }
+        function loadedListener() {
+            // for develop
+            require.config({
+                packages: [
+                    {
+                        name: 'echarts',
+                        location: '../../src',
+                        main: 'echarts'
+                    },
+                    {
+                        name: 'zrender',
+                        //location: 'http://ecomfe.github.io/zrender/src',
+                        location: '../../../zrender/src',
+                        main: 'zrender'
+                    }
+                ]
+            });
+            launchExample();
+        }
+    })();
+}
+else {
+    // for echarts online home page
+    require.config({
+        paths:{ 
+            echarts: '../../build/dist'
+        }
+    });
+    launchExample();
+}
+
+var isExampleLaunched;
+function launchExample() {
+    if (isExampleLaunched) {
+        return;
+    }
+
+    // 按需加载
+    isExampleLaunched = 1;
+    require(
+        [
+            'echarts',
+            'echarts/chart/line',
+            'echarts/chart/bar',
+            'echarts/chart/scatter',
+            'echarts/chart/k',
+            'echarts/chart/pie',
+            'echarts/chart/radar',
+            'echarts/chart/force',
+            'echarts/chart/chord',
+            'echarts/chart/map',
+            'echarts/chart/gauge',
+            'echarts/chart/funnel',
+            'echarts/chart/venn',
+            'echarts/chart/treemap',
+            'echarts/chart/tree',
+            'echarts/chart/eventRiver'
+        ],
+        requireCallback
+    );
+}
+
+var echarts;
+var myChart;
+function requireCallback (ec) {
+    echarts = ec;
+    myChart = echarts.init(domMain);
+    var opt = option('line', 100);
+    myChart.setOption(opt, true);
+    document.getElementById('res').innerHTML = 'ready!<br/>';
+    document.getElementById('run').onclick = start;
+    document.getElementById('auto-run').onclick = autoStart;
+}
+
+var domMain = document.getElementById('main');
+var isRunning = false;
+
+var isRunning;
+var round;
+var n;
+var result;
+var total;
+var chartType;
+
+function start() {
+    if (isRunning) {
+        return;
+    }
+    isRunning = true;
+    document.getElementById('res').innerHTML += 'running ';
+
+    round = document.getElementById('round').value;
+    n = document.getElementById('count').value;
+    result = [];
+    total = 0;
+    chartType = document.getElementById('chart').value;
+    setTimeout(run,50);
+}
+
+var cList = [
+    'line','bar','scatter','k',
+    'pie','radar','chord','map'
+];
+var autoIdx = 0;
+var autoRun = false;
+function autoStart() {
+    if (isRunning) {
+        return;
+    }
+    autoIdx = 0;
+    autoRun = true;
+    autoCheck();
+}
+function autoCheck() {
+    if (autoRun && autoIdx < cList.length) {
+        document.getElementById('chart').value = cList[autoIdx++];
+        start();
+    }
+    else {
+        autoRun = false;
+        autoIdx = 0;
+    }
+}
+
+function run(){
+    if (round--) {
+        var opt = option(chartType, n - 0);
+        var ticket = new Date();
+        myChart.setOption(opt, true);
+        ticket = new Date() - ticket;
+        total += ticket
+        result.push(ticket);
+        setTimeout(run,200);
+        //myChart.showLoading();
+    }
+    else {
+        //myChart.hideLoading();
+        isRunning = false;
+        document.getElementById('res').innerHTML +=
+            '【' + chartType + '】 : ' +
+            (
+                (chartType == 'map' || chartType == 'radar' || chartType == 'pie' || chartType == 'chord')
+                ? (n > 200 ? 200 : n)
+                : (n >= 10000 ? (n / 10000 + '万') : n)
+            )
+            + '个数据平均render时间:'
+            + Math.round(total/result.length)
+            + 'ms : [' + result.join(',') + ']<br/>';
+        autoCheck();
+    }
+}