先贴下使用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()。