FusionCharts简单教程(二)-----使用js加载图像和setDataXML()加载数据
前面一篇对FusionCharts进行了一个简单的介绍,而且建立了我们第一个图形,但是那个是在HTML中使用<OBJECT>和<EMBED>标记来加载图形的,但是这样做是非常不“理智”的。这样做除了代码量比较大外,还有并不是所有的人能够看懂上面的代码。但是使用JS后就可以避免上面几个问题了。
一、使用JS加载FusionCharts图形
下面就分五个步骤讲解如何使用js来加载FusionCharts图形。
第一步:导入FusionCharts.js文件
1 | <font size= "3" ><script language= "JavaScript" src= "../FusionCharts/FusionCharts.js" ></script></font> |
第二步:定义一个DIV,它必须具备一个元素:id
1 | < div id="chartdiv_01" align="center"></ div > |
第三步:建立一个FusionCharts对象
1 | var myChart = new FusionCharts( "para1" , "para2" , "para3" , "para4" ); |
Para1:表示的是SWF文件的地址
Para2:该图形的ID,这个可以随便命名,但是需要保证它的唯一性
para3:图形的高度。
Para4:图形的长度。
1 | var myChart = new FusionCharts( "../FusionCharts/Doughnut3D.swf" , "myChartId_02" , "600" , "500" ); |
第四步:设置数据文件
1 | myChart.setDataURL( "Data.xml" ); |
第五步:指定图形渲染的位置。
1 | myChart.render( "chartdiv_01" ); |
通过上面五个步骤就是完成js加载FusionCharts图形。如果需要加载多个图形,只需要重复第二步—第五步,但是需要确保DIV和FusionCharts对象的id的唯一性。如:
1 2 3 4 5 | <div id= "chartdiv_02" align= "center" ></div> <script type= "text/javascript" > var myChart = new FusionCharts( "../FusionCharts/Doughnut3D.swf" , "myChartId_02" , "600" , "500" ); myChart.setDataURL( "Data.xml" ); myChart.render( "chartdiv_02" ); |
二、使用dataXML加载数据
前面所讲的xml数据文件都是一个单独的xml文件,这个文件可能会被一个或者多个程序使用,同时这个文件也是静态的。但是我们在实际需求中可能不许哟啊单独的文件且数据是动态的,这时我们就可以使用dataXML方法来进行调用。注:dataURL也可以使用动态的数据文件。
dataXML和dataURL都可以提供数据,只不过dataURL是将数据文件以URL地址的形式,而dataXML则是以XML文本的形式。说的直白点就是dataURL将xml文件的地址告知FCF,而dataXML是将XML数据文件里的内容告知FCF。
下面的实例是使用dataXML加载数据文件。其中setDataXML()方面的参数是一个完整的XML字符串。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | myChart.setDataURL(<graph caption= '每月销售额柱形图' xAxisName= '月份' yAxisName= 'Units' showNames= '1' decimalPrecision= '0' formatNumberScale= '0' > <set name= '一月' value= '100' color= 'AFD8F8' /> <set name= '二月' value= '200' color= 'F6BD0F' /> <set name= '三月' value= '300' color= '8BBA00' /> <set name= '四月' value= '120' color= 'FF8E46' /> <set name= '五月' value= '220' color= '008E8E' /> <set name= '六月' value= '330' color= 'D64646' /> <set name= '七月' value= '210' color= '8E468E' /> <set name= '八月' value= '544' color= '588526' /> <set name= '九月' value= '565' color= 'B3AA00' /> <set name= '十月' value= '754' color= '008ED6' /> <set name= '十一月' value= '441' color= '9D080D' /> <set name= '十二月' value= '654' color= 'A186BE' /> </graph>"); |
三、setDataXML()的问题
我们知道浏览器对参数的获取一般都有一个长度的限制,如果XML字符串数据过大,可能会导致问题,貌似下钻到时候如果有中文会出现问题(在这次项目中,下钻中文总是传递不过去,不知道各位有没有遇到过这样的问题,求解!!)。
所以在实际的应用中一般都是推荐这种方式:setDataURL()方法,使用javascript来加载图形。不过在使用setDataURL时,如果地址里面包含有”?”、”&”等字符时,需要进行转码操作。对于java而言推荐使用URLEncoder.encode()来进行编码。
-
作者:chenssy。一个专注于【死磕 Java】系列创作的男人
出处:https://www.cnblogs.com/chenssy/p/3248958.html
作者个人网站:https://www.cmsblogs.com/。专注于 Java 优质系列文章分享,提供一站式 Java 学习资料
目前死磕系列包括:
1. 【死磕 Java 并发】:https://www.cmsblogs.com/category/1391296887813967872(已完成)
2.【死磕 Spring 之 IOC】:https://www.cmsblogs.com/category/1391374860344758272(已完成)
3.【死磕 Redis】:https://www.cmsblogs.com/category/1391389927996002304(已完成)
4.【死磕 Java 基础】:https://www.cmsblogs.com/category/1411518540095295488
5.【死磕 NIO】:https://www.cmsblogs.com/article/1435620402348036096
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构