网站绘制波形图状的统计图(动态)

nealinvip 2014-06-03 09:26:08
坛友们好,请教一个问题。
目的:就是像图片一样绘制统计图。
需求:1.网页形式;
2.3000多个点,自动更新,(时间越短越好);
3.数据从后台提取(ajax);
4.最好好看一些;
目前我用js插件highcharts的做的(通过ajax定时从后台提取数据,绘制),但是有几个问题:1.刷新不能更快了,一秒钟图形更新3次就是极限了。2.占用的cpu太大了,一直在80%以上。希望坛友给个帮助,用什么解决方案较好,或许用silverlight好?还是用js插件我做的哪里不够好.
...全文
1391 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
webdiyer 2014-07-01
  • 打赏
  • 举报
回复
实时交互试试SignalR:http://signalr.net/
ydxt_1668725251 2014-07-01
  • 打赏
  • 举报
回复
分析商品走势图 int[] Count = new int[12]; string cmdtxt2 = "SELECT * FROM tb_Ware WHERE ID=" + ID + ""; SqlCommand Com1 = new SqlCommand(cmdtxt2, Con); SqlDataAdapter da = new SqlDataAdapter(); da.SelectCommand = Com1; DataSet ds = new DataSet(); da.Fill(ds); int j = 0; for(j=0;j<12;j++) { Count[j] = Convert.ToInt32(ds.Tables[0].Rows[0][j+2].ToString()) *26/ 500 ; } //显示折线效果 SolidBrush mybrush = new SolidBrush(Color.Red); Point[] points = new Point[12]; points[0].X = 60; points[0].Y = 340 - Count[0]; points[1].X = 100; points[1].Y = 340 - Count[1]; points[2].X = 140; points[2].Y = 340 - Count[2]; points[3].X = 180; points[3].Y = 340 - Count[3]; points[4].X = 220; points[4].Y = 340 - Count[4]; points[5].X = 260; points[5].Y = 340 - Count[5]; points[6].X = 300; points[6].Y = 340 - Count[6]; points[7].X = 340; points[7].Y = 340 - Count[7]; points[8].X = 380; points[8].Y = 340 - Count[8]; points[9].X = 420; points[9].Y = 340 - Count[9]; points[10].X = 460; points[10].Y = 340 - Count[10]; points[11].X = 500; points[11].Y = 340 - Count[11]; g.DrawLines(mypen2, points); //绘制折线
peak1951 2014-06-05
  • 打赏
  • 举报
回复
引用 5 楼 sp1234 的回复:
大多数真正的管理信息系统项目,根本不是asp.net程序员考虑的事情。asp.net主要就是用来做一些非常简单的报告,让美工画点花边、配色的。
这句话不太苟同,用友的U9 ERP系统就是基于.NET平台
nealinvip 2014-06-04
  • 打赏
  • 举报
回复
我在考虑,是不是用silverlight,处理速度会比js更快?
nealinvip 2014-06-04
  • 打赏
  • 举报
回复
引用 9 楼 smthgdin 的回复:
数据源是不是每秒都更新? 如果不是应该是数据源更新的时候,往页面推送json。
如何推送呢?是一种什么方式吗?求解。我甚至都不需要查数据库。只是从后台获取数据就行。我们的传感器会通过局域网发送数据,检测端调用api获取这些数据,交给前台页面显示。
nealinvip 2014-06-04
  • 打赏
  • 举报
回复
引用 4 楼 sp1234 的回复:
首先,3000多个点,你300毫秒就重新取一次?就算是不画图,仅仅通讯,再加上到悲催的asp.net程序速度问题,这几乎是立刻被枪毙的。仅仅一个客户,你几秒去后台计算并取回3000多个点,这已经是不幸了。如果有几百个客户端并行繁忙操作时怎么办?嗯不用办了,早“死”了。 如果真是这类系统,如果不是用来糊弄个别领导的——而是给几百个具体办事人员繁忙操作用的,那么这通常需要设计为一个即时业务通讯系统。例如: 1. 后台仅仅在绝对必要时才主动推送数据给客户端,而不是客户端去轮询。 2. 仅仅推送改变了的数据,而不是全部。 3. 仅仅推送在当前屏幕可见范围内的数据,而不是全部。 4. 仅仅推送根据屏幕设置而抽稀了的数据,而不是详细数据。 5. 实在不行,往往在后台直接推送局部图片到客户端,而不是推送数据然后让前端渲染。
多谢指点,我所需要的这个系统,不会超过10个用户区访问,一般也就一个两个。是这样的,我想做的是一个监控实时波形图,传感器定时传输实时数据(当然速度很快就传回来了,局域网)。作为局域网的监视端需要用波形图显示实时数据。我看过有集成商做过,但不知道人家用的什么技术。也是浏览器打开的BS系统,一秒更新6帧,速度很快了。
smthgdin_020 2014-06-04
  • 打赏
  • 举报
回复
数据源是不是每秒都更新? 如果不是应该是数据源更新的时候,往页面推送json。
吉普赛的歌 2014-06-04
  • 打赏
  • 举报
回复
引用 7 楼 nealinvip 的回复:
我在考虑,是不是用silverlight,处理速度会比js更快?
你应该考虑一下P哥的意见 重点是:如何减少对DB的访问, 而不是想当然地加快速度。 如果能主动上传数据, 这个比定时访问要强万倍!
  • 打赏
  • 举报
回复
大多数真正的管理信息系统项目,根本不是asp.net程序员考虑的事情。asp.net主要就是用来做一些非常简单的报告,让美工画点花边、配色的。
  • 打赏
  • 举报
回复
首先,3000多个点,你300毫秒就重新取一次?就算是不画图,仅仅通讯,再加上到悲催的asp.net程序速度问题,这几乎是立刻被枪毙的。仅仅一个客户,你几秒去后台计算并取回3000多个点,这已经是不幸了。如果有几百个客户端并行繁忙操作时怎么办?嗯不用办了,早“死”了。 如果真是这类系统,如果不是用来糊弄个别领导的——而是给几百个具体办事人员繁忙操作用的,那么这通常需要设计为一个即时业务通讯系统。例如: 1. 后台仅仅在绝对必要时才主动推送数据给客户端,而不是客户端去轮询。 2. 仅仅推送改变了的数据,而不是全部。 3. 仅仅推送在当前屏幕可见范围内的数据,而不是全部。 4. 仅仅推送根据屏幕设置而抽稀了的数据,而不是详细数据。 5. 实在不行,往往在后台直接推送局部图片到客户端,而不是推送数据然后让前端渲染。
nealinvip 2014-06-03
  • 打赏
  • 举报
回复
引用 2 楼 peak1951 的回复:
取数据时关键,不知道你的具体算法是怎样的
不是啊,我取数据用造数据的方式,random来造数据,用stringbuilder来存储,最后返回一个json类型的字符串。前台进行解析的
peak1951 2014-06-03
  • 打赏
  • 举报
回复
取数据时关键,不知道你的具体算法是怎样的
jrl5365 2014-06-03
  • 打赏
  • 举报
回复
找个插件就可以了,http://www.highcharts.com/ 这个看看

62,041

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧