echart+jquery+json统计TP数据

由于工作需要,需要统计交易数据的TP50,TP90,TP95,TP99。采用的前端技术是jquery+json+echart。

一、TP定义(谷歌)

Calculating TP is very simple:

1. Sort all times in ascending order: [2s, 10s, 100s, 1000s]

2. find latest item in portion you need to calculate.
  2.1 For TP50 it will be ceil(4*0.5) = 2 requests. You need 2nd request.
  2.2 For TP90 it will be ceil(4*0.9) = 4. You need 4th request.

3. We get time for the item found above. TP50=10s. TP90=1000s

二、json数据结构

{

"2017-01-01": {

"tp50": {

  "cost": 0.628

},

"tp90": {

  "cost": 0.655

},

"tp95": {

  "cost": 0.796

},

"tp99": {

  "cost": 1.907

}

},

"2017-01-02": {

"tp50": {

  "cost": 0.614

},

"tp90": {

  "cost": 0.645

},

"tp95": {

  "cost": 0.784

},

"tp99": {

  "cost": 2.224

}

},

"2017-01-03": {

"tp50": {

  "cost": 0.615

},

"tp90": {

  "cost": 0.651

},

"tp95": {

  "cost": 0.808

},

"tp99": {

  "cost": 2.745

}

}

}

三、前端页面代码片段

  1 <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
  2 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
  3 <html>
  4 <head>
  5 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  6 <title>tp</title>
  7 <script src="js/echarts.js"></script>
  8 <script src="js/jquery-3.1.1.min.js"></script>
  9 <script language="javascript" type="text/javascript" src="My97DatePicker/WdatePicker.js"></script>
 10 <script>
 11     $(document).ready(function() {
 12         $("button").click(function() {
 13             var startDate = $("#startDate").val();
 14             var endDate = $("#endDate").val();
 15             $.getJSON({
 16                 url : "/ipos-timer/getTpList",
 17                 data:"startDate="+startDate+"&endDate="+endDate,
 18                 success : function(data) {
 19                     myChart.setOption({
 20                         xAxis : {
 21                             data : data.range
 22                         },
 23                         series : [ {
 24                             name : ‘tp50‘,
 25                             data : data.tp50
 26                         }, {
 27                             name : ‘tp90‘,
 28                             data : data.tp90
 29                         }, {
 30                             name : ‘tp95‘,
 31                             data : data.tp95
 32                         }, {
 33                             name : ‘tp99‘,
 34                             data : data.tp99
 35                         } ]
 36                     });
 37                 }
 38             });
 39         });
 40     });
 41 </script>
 42 </head>
 43 <body>
 44     start:
 45     <input class="Wdate" id="startDate" type="text" onClick="WdatePicker()">
 46     &nbsp; end:
 47     <input class="Wdate" id="endDate" type="text" onClick="WdatePicker()">
 48     <button>search</button>
 49     <div id="main" style="width: 1200px; height: 400px;"></div>
 50     <script>
 51         var myChart = echarts.init(document.getElementById(‘main‘));
 52         option = {
 53             tooltip : {
 54                 trigger : ‘axis‘
 55             },
 56             legend : {
 57                 data : [ ‘tp50‘, ‘tp90‘, ‘tp95‘, ‘tp99‘ ]
 58             },
 59             toolbox : {
 60                 show : true,
 61                 feature : {
 62                     mark : {
 63                         show : true
 64                     },
 65                     dataView : {
 66                         show : true,
 67                         readOnly : false
 68                     },
 69                     dataZoom : {
 70                         show : true
 71                     },
 72                     magicType : {
 73                         show : true,
 74                         type : [ ‘line‘, ‘bar‘, ‘stack‘, ‘tiled‘ ]
 75                     },
 76                     restore : {
 77                         show : true
 78                     },
 79                     saveAsImage : {
 80                         show : true
 81                     }
 82                 }
 83             },
 84             dataZoom : {
 85                 show : true,
 86                 realtime : true,
 87                 start : 0,
 88                 end : 100
 89             },
 90             calculable : true,
 91             xAxis : [ {
 92                 type : ‘category‘,
 93                 boundaryGap : false,
 94                 data : []
 95             } ],
 96             yAxis : [ {
 97                 type : ‘value‘
 98             } ],
 99             series : [ {
100                 name : ‘tp50‘,
101                 type : ‘line‘,
102                 stack : ‘总量‘,
103                 data : []
104             }, {
105                 name : ‘tp90‘,
106                 type : ‘line‘,
107                 stack : ‘总量‘,
108                 data : []
109             }, {
110                 name : ‘tp95‘,
111                 type : ‘line‘,
112                 stack : ‘总量‘,
113                 data : []
114             }, {
115                 name : ‘tp99‘,
116                 type : ‘line‘,
117                 stack : ‘总量‘,
118                 data : []
119             } ]
120         };
121         myChart.setOption(option);
122     </script>
123 </body>
124 </html>

四、页面展示

p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco; color: #3933ff }
p.p2 { margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco; color: #009193 }
p.p3 { margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco; color: #4e9192 }
p.p4 { margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco }
p.p5 { margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Monaco; color: #932192 }
span.s1 { color: #cc7450 }
span.s2 { color: #000000 }
span.s3 { color: #4e9192 }
span.s4 { color: #932192 }
span.s5 { color: #929292 }
span.s6 { color: #4e9072 }
span.s7 { color: #009193 }
span.s8 { text-decoration: underline; color: #000000 }
span.s9 { color: #931a68 }
span.s10 { color: #3933ff }
span.s11 { color: #392de7 }
span.Apple-tab-span { white-space: pre }

时间: 2024-12-13 18:18:56

echart+jquery+json统计TP数据的相关文章

JQuery + JSON作为前后台数据交换格式实践

JQuery + JSON作为前后台数据交换 JQuery提供良好的异步加载接口AJAX,可以局部更新页面数据, http://api.jquery.com/category/ajax/ JSON作为一种轻量数据格式,被浏览器js引擎普遍支持,同xml格式. 使用AJAX+JSON数据格式来实现动态页面,有以下好处: 1. 松耦合, 页面HTML和数据彻底分离, 即表示层 和 数据层分开, 有利前台样式定制. 不同于以往后台脚本嵌套HTML标签,并输出数据到标签的合适位置, 来实现动态页面,表示

jquery: json树组数据输出到表格Dom树的处理方法

项目背景 项目中需要把表格重排显示 处理方法 思路主要是用历遍Json数组把json数据一个个append到4个表格里,还要给每个单元格绑定个单击弹出自定义对话框,表格分了单双行,第一行最后还要改rowspan呵呵,程序还没优化运行正常先给客户展示先:) 1,表格数据->json数组 var keyArr = new Array(); var jsonArr = new Array(); $list.find("thead th").each(function () { keyA

JQuery以JSON方式提交数据到服务端

JQuery将Ajax数据请求进行了封装,从而使得该操作实现起来容易许多.以往我们要写很多的代码来实现该功能,现在只需要调用$.ajax()方法,并指明请求的方式.地址.数据类型,以及回调方法等.下面的代码演示了如何将客户端表单数据封装成JSON格式,然后通过JQuery的Ajax请求将数据发送到服务端,并最终将数据存储到数据库中.服务端定义为一个.ashx文件,事实上你可以将服务端定义为任何能接收并处理客户端数据的类型,如Web Service,ASP.NET Page,Handler等. 首

Sharepoint2013 webpart 使用Jquery+json数据实现的菜单。

Sharepoint2013 webpart 使用Jquery+json数据实现的菜单. 分类: sharepoint2014-11-17 14:17 215人阅读 评论(0) 收藏 举报 把代码块1 复制到txt 里单击后缀名字为js  such as xxx.js.  把此文件上传的文档库.右键--文件完全URL 在Sharepoint2013 里创建 一个webart 内容编辑器--编辑webpart --在content Link--单击浏览 把上面的URL复制进去. js文件和样式文件

通过jquery,从json中读取数据追加到html中

1.下载安装jquery 可通过下面的方法引入在线版本的js: <script src="https://apps.bdimg.com/libs/jquery/2.1.4/jquery.min.js"></script> 参考安装文档:http://www.runoob.com/jquery/jquery-install.html 2.准备一个json格式的文件,后缀可以不是.json 例如下面是result.json的格式 {    "title&q

ECharts, PHP, MySQL, Ajax, JQuery 实现前后端数据可视化

ECharts 下载js代码 工作原理浅析 在项目中引入ECharts 后台处理 数据库端MySQL PHP端 JQuery Ajax处理 ECharts 端处理 前端全部代码 演示结果 总结 最近要将后台数据库上的一些数据以可视化的方法显示到前端,找来找去,发现百度开发的这套图表工具库还不错,网上搜索了一下相关的教程,也算是实现了较为简单的demo.于是写下来,记录一下. ECharts ECharts是国人开发的一套前端的图表工具库,使用起来超方便,也很简单(当然了,前提是理解了其工作原理之

jquery省市区三级联动(数据来源国家统计局官网)内附源码下载

很久很久没有写博了. 今天更新了项目的省市区三级联动数据,更新后最新的海南三沙都有,分享给所有需要的小伙伴们... JQUERY + JSON,无数据库,纯JS代码,无加密,无压缩,可直接使用在任何项目中. 数据来源于国家统计局官网. 先上图: 绑定省市区 使用方法: 1. 引用JQUERY    <script type="text/javascript" src="http://apps.bdimg.com/libs/jquery/1.11.1/jquery.min

JQuery + XML作为前后台数据交换格式实践

JQuery + xml作为前后台数据交换 JQuery提供良好的异步加载接口AJAX,可以局部更新页面数据, http://api.jquery.com/category/ajax/ xml作为一种轻量数据格式,被浏览器js引擎普遍支持,同json格式,但是没有json那么精简. 使用AJAX+xml数据格式来实现动态页面,有以下好处: 1. 松耦合, 页面HTML和数据彻底分离, 即表示层 和 数据层分开, 有利前台样式定制. 不同于以往后台脚本嵌套HTML标签,并输出数据到标签的合适位置,

jquery $.ajax 获取josn数据

<script type="text/javascript" src="jquery-1.9.1.js"></script> <script type="text/javascript"> function test() { $.ajax({ type: "get", cache: false, url: "../../ajax/Task.aspx", data: 'id