先贴下使用setDataXML的例子:
<div id="chartdiv" align="center">
存放fusionChartsdiv区域
</div>
<script type="text/javascript">
var myCharts = new FusionCharts("FusionCharts/Column3D.swf","chartsId1","400","300");
myCharts.setDataXML("
<graph caption='Monthly Unit Sales' xAxisName='Month' yAxisName='Units'
showNames='1' decimalPrecision='0' formatNumberScale='0' showBorder='1'>
<set label='Jan' value='462' />
<set label='Feb' value='857' />
<set label='Mar' value='671' />
<set label='Apr' value='494' />
<set label='May' value='761' />
<set label='Jun' value='960' />
<set label='Jul' value='629' />
<set label='Aug' value='622' />
<set label='Sep' value='376' />
<set label='Oct' value='494' />
<set label='Nov' value='761' />
<set label='Dec' value='960' />
</graph>
");
myCharts.render("chartdiv");
</script>
可以发现,在myCharts.setDataXML();方法中,中间是一段xml代码,跟之前setDataURL()使用的xml文件的url路径是不一样的。
1、字符长度区别
我们知道,在使用get方式得到参数时,浏览器对参数值得长度是有一定的限制的,所以如果xml字符过长,可能会产生问题。这个时候就需要使用setDataURL()方法;
2、双字节(中文字符)区别
如果你的xml字符里含有双字节字符,例如中文字符,你就不能使用setData
XML()方法,而要使用setDataURL()
最佳模式:在我们的实际应用当中,数据不可能事静态的,他可能是有用户选择查询条件,然后提交给服务器,服务器返回一个查询的结果,比如search.jsp?year=2008。所以腿甲的最佳模式是使用setDataURL()方法,并且使用javascript加载图形。
注意:在使用setDataURL()方法时,如果地址里含有“?”、“&”等字符,你就需要对这个地址进行URL编码,在js里进行编码,使用escape(url)这个函数,如果你想在服务器进行编码,那就要使用你所用的编程语言进行编码,比如java,则使用编码的类方法是:java.net.URLEncoder.encode()。