解决三个后台请求都成功后先比较数据再处理数据的需求#

今天碰到了一个问题,我需要创建一个图表,但是需要请求三个接口才能比较出指标数据,于是就看到了deferred对象###

理论的补充在这里:http://www.ruanyifeng.com/blog/2011/08/a_detailed_explanation_of_jquery_deferred_object.html

var dealData = function(){
var defer1 = $.Deferred();
var defer2 = $.Deferred();
var defer3 = $.Deferred(); $.NstsGET(studyInfosUrl, {}, function(data) {
defer1.resolve(data);
});
$.NstsGET(exerciseInfosUrl, {}, function(data) {
defer2.resolve(data);
});
$.NstsGET(trainInfosUrl, {}, function(data) {
defer3.resolve(data);
});
$.when(defer1, defer2, defer3).done( function(data1, data2, data3) {
myChart.hideLoading();
// 数据处理在这里
arrayDate1 = null;
arrayDate2 = null;
arrayDate3 = null;
//======================数据处理end
//处理回调在这里
if (fn) {
fn(data1,data2,data3);
}
}); }

实战应用场景,比如用Exchar做的一个带有时间轴的统计表时,需要拿到对应的三个数据的最长时间:

如何需要配置tooltip,显示自定义数据?

自定义数据表现在这里:

tooltip: {
trigger: 'axis',
formatter: function(params) {
if (!params[0].value) {
params[0].value = "-";
}
if (!params[1].value) {
params[1].value = "-";
}
if (!params[2].value) {
params[2].value = "-";
}
if (!params[3].value) {
params[3].value = "-";
}
return params[0].name + '<br>考试成绩分数:' + params[0].value + '<br>练习题目数量:' + params[1].value + '<br>培训数量:' + params[2].value + '<br>知识点:' + params[3].value; }

真正的数据在这里:

                 series: [{
name: '考试成绩分布',
type: 'bar',
itemStyle: {
normal: {
color: new echarts.graphic.LinearGradient(
0, 0, 0, 1, [{
offset: 0,
color: '#9ddffb'
}, {
offset: 1,
color: '#36ace9'
}]
)
}
},
data: dataStudy
}, {
name: '练习题目数量',
type: 'bar',
itemStyle: {
normal: {
color: new echarts.graphic.LinearGradient(
0, 0, 0, 1, [{
offset: 0,
color: '#fee3a9'
}, {
offset: 1,
color: '#ffc64b'
}]
)
}
},
data: dataExercise
},{
name: '培训数量分布',
type: 'bar',
itemStyle: {
normal: {
color: new echarts.graphic.LinearGradient(
0, 0, 0, 1, [{
offset: 0,
color: '#9dafcc'
}, {
offset: 1,
color: '#545f71'
}]
)
}
},
data: dataTrain
},{
name: '知识点',
type: 'line',
data: studyTopic
}]
};

注意最后一个type:line是来欺骗Exchar的占位数据。。。这样就能实现三条数据可视化展示,搭配一条详细数据的需求了!

jQuery的deferred对象实战应用(附:Exchar动态多条数据展示并在topic展示详细数据)的更多相关文章

  1. jQuery的deferred对象使用详解——实现ajax线性请求数据

    最近遇到一个ajax请求数据的问题 ,就是想要请求3个不同的接口,然后请求完毕后对数据进行操作,主要问题就是不知道这3个请求誰先返回来,或者是在进行操作的时候不能保证数据都已经回来,首先想到能完成的就 ...

  2. jQuery的deferred对象详解

    jQuery的deferred对象详解请猛击下面的链接 http://www.ruanyifeng.com/blog/2011/08/a_detailed_explanation_of_jquery_ ...

  3. jQuery的deferred对象学习

    #copy { background-color: lightgreen; padding: 15px; margin: 10px } 一.deferred对象简介 deferred对象是jquery ...

  4. jQuery的deferred对象详解(转载)

    本文转载自: jQuery的deferred对象详解(转载)

  5. jQuery的deferred对象

    应用场景:处理异步任务 看到一篇阮一峰老师的博客挺好的讲的就是jQuery的deferred对象.坦诚讲之前没有怎么用过这个东东呢. 摘其中几点记录下 (1) $.Deferred() 生成一个def ...

  6. jQuery的deferred对象详解(一)

    最近一段时间,都在研究jquery里面的$.Deffered对象,几天都搞不明白,其中源码的运行机制,网上查找了相关的资料,<jQuery的deferred对象详解>阮一峰老师的文章,里面 ...

  7. jQuery的deferred对象解析

    参考: jQuery的deferred对象详解:http://www.ruanyifeng.com/blog/2011/08/a_detailed_explanation_of_jquery_defe ...

  8. [转] jQuery的deferred对象详解

    jQuery的开发速度很快,几乎每半年一个大版本,每两个月一个小版本. 每个版本都会引入一些新功能.今天我想介绍的,就是从jQuery 1.5.0版本开始引入的一个新功能----deferred对象. ...

  9. jQuery的deferred对象详解(转)

    jQuery的开发速度很快,几乎每半年一个大版本,每两个月一个小版本. 每个版本都会引入一些新功能.今天我想介绍的,就是从jQuery 1.5.0版本开始引入的一个新功能----deferred对象. ...

随机推荐

  1. 前端笔记之JavaScript面向对象(四)组件化开发&轮播图|俄罗斯方块实战

    一.组件化开发 1.1组件化概述 页面特效的制作,特别需要HTML.CSS有固定的布局,所以说现在越来越流行组件开发的模式,就是用JS写一个类,当你实例化这个类的时候,页面上的效果布局也能自动完成. ...

  2. XPath和CssSelector定位总结

    1. 介绍XPath和CssSelector 2. XPath有哪些方式 2.1 通过XPath语法 2.2 Contains关键字 2.3 Start-With 2.4 Or和And关键字 2.5 ...

  3. WCF优雅使用 KnownType标记的方法

    [KnownType("DerivedTypes")] [DataContract] public abstract class TaskBase { // other class ...

  4. 杭电ACM2020--绝对值排序

    输入n(n<=100)个整数,按照绝对值从大到小排序后输出.题目保证对于每一个测试实例,所有的数的绝对值都不相等.   Input 输入数据有多组,每组占一行,每行的第一个数字为n,接着是n个整 ...

  5. iis读取不到本地证书问题

    导入证书时,通过mmc命令打开控制台->添加管理单元或删除单元->选择本地计算机账号->然后导入证书,解决 ssl证书无法与www.xxx通信. 证书导入后,不能正常读取.有两个问题 ...

  6. arcgis api for js入门开发系列十九图层在线编辑

    本篇主要讲述的是利用arcgis api实现图层在线编辑功能模块,效果图如下: 实现思路: 1.arcgis server发布的FeatureServer服务提供的图层在线编辑能力: 2.实现的在线编 ...

  7. Snapde电子表格支持的文件格式

    Snapde,一个专门为编辑超大型数据量CSV文件而设计的单机版电子表格软件:它运行的速度非常快,反应非常灵敏.那么它支持哪些文件格式呢? 1.CSV文件格式,是一种以逗号分隔列.以回车分隔行的文本文 ...

  8. Android ViewPager+Fragment 在Activity中获取Fragment的控件

    如果ViewPager+Fragment实现Tab切换,在activity中利用adapter.getItem获取到fragment然后再根据fragment.的方法获取控件 //隐藏求租,以下代码用 ...

  9. (办公)springboot配置全局异常

    项目用到了springboot,本来很高兴,但是项目里什么东西都没有,验证,全局异常这些都需要自己区配置.最近springboot用的还是蛮多的,我还是做事情,把经验发表一下.全局统一的异常,首先异常 ...

  10. 『C编程』学习笔记(1)

    size_t类型详解: #include <cstddef> #include <iostream> #include <array> int main() { s ...