在一个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中绘制大数据量的可交互的图表的更多相关文章

  1. 【MySQL】MySQL中针对大数据量常用技术_创建索引+缓存配置+分库分表+子查询优化(转载)

    原文地址:http://blog.csdn.net/zwan0518/article/details/11972853 目录(?)[-] 一查询优化 1创建索引 2缓存的配置 3slow_query_ ...

  2. 大数据量 与 UI交互时的处理 总结与心得

    [以下均在主线程中操作时]1.UI直接操作,数据量较大时,直接使用UI会非常慢2.数据驱动操作,数据量较大时,数据与UI的交互效率相比“1”提升明显 总结:但以上这两种操作  都会“较长时间”占用主线 ...

  3. Kendo UI中TreeView 放入tabstrip中,大数据量时超过边框的解决方案。

    参考http://www.kendoui.com/forums/ui/tabstrip/tabstip-with-treeview-treeview-breaking-out-of-tabstrip. ...

  4. 关于MySQL中查询大数据量的情况下分页limit的性能优化

    https://blog.csdn.net/weixin_37848710/article/details/80772725

  5. WCF大数据量传输解决方案

    文章内容列表:1. 场景:2. 解决方案3. WCF契约与服务实现设计静态图4. WCF契约与服务实现设计详细说明6. 服务端启动服务代码:7. 客户端代码8.   WCF大数据量传输解决方案源码下载 ...

  6. 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 ...

  7. 大数据量表中,增加一个NOT NULL的新列

      这次,发布清洗列表功能,需要对数据库进行升级.MailingList表加个IfCleaning字段,所有的t_User*表加个IfCleaned字段.   脚本如下 对所有的t_User表执行 a ...

  8. jquery.datatable.js与CI整合 异步加载(大数据量处理)

    http://blog.csdn.net/kingsix7/article/details/38928685 1.CI 控制器添加方法 $this->show_fields_array=arra ...

  9. WebService - 怎样提高WebService性能 大数据量网络传输处理

    直接返回DataSet对象 返回DataSet对象用Binary序列化后的字节数组 返回DataSetSurrogate对象用Binary序列化后的字节数组 返回DataSetSurrogate对象用 ...

随机推荐

  1. Oracle Essbase入门系列(一)

    1. 开篇序 本文是几年前做Hyperion Planning项目时写的,后来陆陆续续有些补充.本来打算将整个EPM写一系列的教程,但HFM写到1/3就没动力了.不过至少Essbase这部分是完整的. ...

  2. 题目:打印出所有的 "水仙花数 ",所谓 "水仙花数 "是指一个三位数,其各位数字立方和等于该数本身。例如:153是一个 "水仙花 数 ",因为153=1的三次方+5的三次方+3的三次方。

    题目:打印出所有的 "水仙花数 ",所谓 "水仙花数 "是指一个三位数,其各位数字立方和等于该数本身.例如:153是一个 "水仙花 数 ", ...

  3. 单击HighCharts柱形体弹框显示详细信息

    上篇博客介绍了如何在HighCharts统计图表下生成表格,二者相互结合,可以对数据进行更好的统计分析.在统计的同时,如果需要想要及时查看详细信息的话,就得再加一个功能,就是单击柱形体,显示该项下的详 ...

  4. Mac eclipse找不到source的解决办法

    因为要搞hadoop,最终还是逃不过写java的命运... eclipse里想查具体函数源代码时,如果报错说找不到源: 试试ls -l which java,在这个目录周围看看能不能找到src.zip ...

  5. 读写文本(.txt)文件 .NET

    http://www.cnblogs.com/jx270/archive/2013/04/14/3020456.html (一) 读取文件 如果你要读取的文件内容不是很多,可以使用 File.Read ...

  6. Windows 8.1 & Windows 10 取消 Windows Update 自动更新硬件驱动

    最新文章:Virson's Blog 1.打开控制面板,在搜索框中搜索“设备”一次,检索出相关的设备设置功能,如下图: 2.在检索出的结果中点击“更改设备安装设置”,会弹出设备驱动的更新方式,按照如下 ...

  7. java匿名类

    一般情况下,我们需要声明一个类去继承一个接口,然后再new这个类,赋值给接口.但有时后这个类只会被调用一次,为了调用方便,那么就可以用匿名类来简化这个步骤. interface IKey{ void ...

  8. JavaScript - 2个等号与3个等号的区别

    简言之,== equality 等同,=== identity 恒等. ==, 两边值类型不同的时候,要先进行类型转换,再比较. ===,不做类型转换,类型不同的一定不等. 或: = 赋值运算符 == ...

  9. 安卓开发笔记——自定义广告轮播Banner(实现无限循环)

    关于广告轮播,大家肯定不会陌生,它在现手机市场各大APP出现的频率极高,它的优点在于"不占屏",可以仅用小小的固定空位来展示几个甚至几十个广告条,而且动态效果很好,具有很好的用户& ...

  10. c# socket 解决粘包,半包

    处理原理: 半包:即一条消息底层分几次发送,先有个头包读取整条消息的长度,当不满足长度时,将消息临时缓存起来,直到满足长度再解码 粘包:两条完整/不完整消息粘在一起,一般是解码完上一条消息,然后再判断 ...