asp.net中绘制大数据量的可交互的图表
在一个asp.net项目中要用到能绘制大数据量信息的图表,并且是可交互的(放大、缩小、导出、打印、实时数据),能够绘制多种图形。
为此进行了多方调查预研工作,预研过微软的MsChart图表组件、基于jquery的FlortChart图表、Silverlight的Visifire图表组件、基于js和flash的FusionCharts图表、Ext4.0框架中的图表、纯js的Highstock和纯js的Highcharts。
下面给出各个图表的预研结果,以供参考。
|
MsChart |
|
|
MsChart是一个微软自带图表,图表支持事件、实时数据、导出图片、打印图表等功能,但是不支持放大缩小功能。所表现的形式是图片 |
|
|
数据量 |
6M |
|
数据格式 |
支持DataTable、Object[]等多种数据形式 |
|
交互方式 |
通过.cs后台代码进行数据填充 |
|
数据源时间 |
16s |
|
响应时间 |
毫秒 |
|
优点 |
对大数据量支持效果比较好,响应时间快,不需要用户下载安装任何插件 |
|
缺点 |
不支持放大缩小功能,表现形式是图片,不满足系统需求 |
|
Highcharts |
|
|
Highcharts是一款纯js的图表,图表支持事件、实时数据、放大缩小、导出图片、打印图表功能 |
|
|
数据量 |
6M |
|
数据格式 |
Json轻数据格式 |
|
交互方式 |
Highcharts通过ajax调用后台方法获取数据,然后显示; |
|
数据源时间 |
16.97s |
|
响应时间 |
8s |
|
优点 |
易于维护和定制、展现美观、满足系统需求,不需要用户下载安装任何插件 |
|
缺点 |
加载速度慢,容易造成浏览器卡死 |
|
FlortChart |
|
|
FlortChart基于JQuery的图形组件,支持事件、放大缩小 |
|
|
数据量 |
6M |
|
数据格式 |
Xml,json |
|
交互方式 |
FlortChart通过ajax调用后台方法获取数据,然后显示 |
|
数据源时间 |
16s |
|
响应时间 |
40s |
|
优点 |
开源免费,不需要用户下载安装任何插件 |
|
缺点 |
加载速度慢,容易造成浏览器卡死 |
|
Visifire |
|
|
Visifire是基于微软Silverlight的一个图形组件,支持事件、放大缩小 |
|
|
数据量 |
6M |
|
数据格式 |
Xaml |
|
交互方式 |
Visifire通过ajax调用后台方法获取数据,然后显示 |
|
数据源时间 |
16s |
|
响应时间 |
2~3s |
|
优点 |
数据加载后响应比较快 |
|
缺点 |
不易定制,无法实现实时数据,用户要下载安装Silverlight组件 |
|
FusionCharts |
|
|
FusionCharts基于Js和Flash的图形组件,支持事件、放大缩小 |
|
|
数据量 |
6M |
|
数据格式 |
XML 、JSON |
|
交互方式 |
FusionCharts通过ajax调用后台方法获取数据,然后显示 |
|
数据源时间 |
16s |
|
响应时间 |
1~2s |
|
优点 |
有固定的模版,响应速度快,交互流畅 |
|
缺点 |
收费,用户要下载安装Flash组件 |
|
Ext4.0 |
|
|
Ext4.0中自带的图表控件是基于Flash,支持事件、实时数据、提示框 |
|
|
数据量 |
6M |
|
数据格式 |
Xml,json |
|
交互方式 |
Ext图表通过ajax调用后台方法获取数据,然后显示 |
|
数据源时间 |
16s |
|
响应时间 |
10s |
|
优点 |
框架体系中自带,融合度高;不需要用户下载安装任何插件 |
|
缺点 |
加载速度慢,没找到放大缩小的解决方案 |
|
Highstock |
|
|
Highstock是一款纯js的图表,图表支持事件、实时数据、放大缩小、导出图片、打印图表功能 |
|
|
数据量 |
6M |
|
数据格式 |
Json轻数据格式 |
|
交互方式 |
Highstock通过ajax调用后台方法获取数据,然后显示; |
|
数据源时间 |
16.97s |
|
响应时间 |
0~1s |
|
优点 |
满足系统需求; 交互响应速度快; 易于维护和定制格式、样式、界面美观; 开源免费; 不需要用户下载安装任何插件; |
|
缺点 |
X轴只支持日期 只支持线、柱、面图表,不支持饼图、雷达图等图表 |
通过结果很容易看出纯js的Highstock图表基本能满足大数据可交互的需求,接下来我就以Highstock为基点进行大数据量绘制图形的进行讲解。
在进行实际的开发前最好到官网http://www.highcharts.com/ 看一些demos和api(要看Highstock的),这样有助于详细了解。
接下来就可以根据demo进行学习了,还可以在源码中做一些个性化的修改。
asp.net中绘制大数据量的可交互的图表的更多相关文章
- 【MySQL】MySQL中针对大数据量常用技术_创建索引+缓存配置+分库分表+子查询优化(转载)
原文地址:http://blog.csdn.net/zwan0518/article/details/11972853 目录(?)[-] 一查询优化 1创建索引 2缓存的配置 3slow_query_ ...
- 大数据量 与 UI交互时的处理 总结与心得
[以下均在主线程中操作时]1.UI直接操作,数据量较大时,直接使用UI会非常慢2.数据驱动操作,数据量较大时,数据与UI的交互效率相比“1”提升明显 总结:但以上这两种操作 都会“较长时间”占用主线 ...
- Kendo UI中TreeView 放入tabstrip中,大数据量时超过边框的解决方案。
参考http://www.kendoui.com/forums/ui/tabstrip/tabstip-with-treeview-treeview-breaking-out-of-tabstrip. ...
- 关于MySQL中查询大数据量的情况下分页limit的性能优化
https://blog.csdn.net/weixin_37848710/article/details/80772725
- WCF大数据量传输解决方案
文章内容列表:1. 场景:2. 解决方案3. WCF契约与服务实现设计静态图4. WCF契约与服务实现设计详细说明6. 服务端启动服务代码:7. 客户端代码8. WCF大数据量传输解决方案源码下载 ...
- c#中@标志的作用 C#通过序列化实现深表复制 细说并发编程-TPL 大数据量下DataTable To List效率对比 【转载】C#工具类:实现文件操作File的工具类 异步多线程 Async .net 多线程 Thread ThreadPool Task .Net 反射学习
c#中@标志的作用 参考微软官方文档-特殊字符@,地址 https://docs.microsoft.com/zh-cn/dotnet/csharp/language-reference/toke ...
- 大数据量表中,增加一个NOT NULL的新列
这次,发布清洗列表功能,需要对数据库进行升级.MailingList表加个IfCleaning字段,所有的t_User*表加个IfCleaned字段. 脚本如下 对所有的t_User表执行 a ...
- jquery.datatable.js与CI整合 异步加载(大数据量处理)
http://blog.csdn.net/kingsix7/article/details/38928685 1.CI 控制器添加方法 $this->show_fields_array=arra ...
- WebService - 怎样提高WebService性能 大数据量网络传输处理
直接返回DataSet对象 返回DataSet对象用Binary序列化后的字节数组 返回DataSetSurrogate对象用Binary序列化后的字节数组 返回DataSetSurrogate对象用 ...
随机推荐
- python排序算法的实现-快速排序
1. 算法描述: 1.先从数列中取出一个数作为基准数. 2.分区过程,将比这个数大的数全放到它的右边,小于或等于它的数全放到它的左边. 3.再对左右区间重复第二步,直到各区间只有一个数. 2.pyth ...
- 昨日尝试使用百度死链提交,使用lCGI规则提交
本来打算去掉北盟网校的死链,但就算配了规则,提交百度,但是好像还是没有删除到 认真阅读了百度的死链工具 好像需要将死链返回404错误提示 检查北盟的代码,发现北盟做了404从定向 在程序里面404从定 ...
- npm install -g 全局安装总是出现permission权限问题的解决方案
npm install -g 全局安装总是出现permission权限问题的解决方案 开始使用node的时候,在使用npm安装global packages时,习惯性地使用npm install -g ...
- 2016年象行中国(上海站)圆满结束,会议PPT分享
2016年象行中国(上海站)已于5-21日圆满结束,所有技术交流的文档和PPT经整理后,现集中存放在云盘中,相关议题如下: DeepGreen-LLVM-Intro.pptx ... 1.1M ...
- FMDB 版本迁移
FMDB 版本迁移 安装 1. 通过CocoaPods 在项目根目录创建并编辑 Podfile 内容如下 $ cd /path/to/MyProject $ touch Podfile $ edit ...
- 使用magick.net将pdf转换为图片
现在手上有个需求是要将pdf转换为一页一页的image.最开始找到的是pdfbox来处理pdf的.在pdfbox.apache.org的官网首页写了一句'convert you pdfs to ima ...
- Show Linux Package Sort By Size
ArchLinux: ~ $ pacsysclean Debian: ~ $ sudo apt-get install debian-goodies ~ $ dpigs -H
- 刨根问底U3D---从Profile中窥探Unity的内存管理
这篇文章包含哪些内容 这篇文章从Unity的Profile组件入手,来探讨一下Unity在开发环境和正式环境中的内存使用发面的一些区别, 并且给出了最好控制内存的方法(我想你已经知道了...Prefa ...
- mongodb存储过程
MongoDB支持存储过程的使用,它的存储过程是用javascript实现的,被存在于system.js表中,可以接收和输出参数,返回执行存储过程的状态值,也可以嵌套调用. 所以我理解的Mon ...
- [转]c++流缓冲---rdbuf()
C++标准库封装了一个缓冲区类streambuf,以供输入输出流对象使用.每个标准C++输出输出流对象都包含一个指向streambuf的指针,用 户可以通过调用rdbuf()成员函数获得该指针,从而直 ...