FusionCharts中setDataXML和setDataURL的区别

【FusionCharts中setDataXML和setDataURL的区别】

setDataXML()方法中,中间是一段xml代码

setDataURL()括号中是xml文件的url路径

1、字符长度区别

在使用get方式得到参数时,浏览器对参数值得长度是有一定的限制的,所以如果xml字符过长,可能会产生问题。这个时候就需要使用setDataURL()方法;

2、双字节(中文字符)区别

如果xml字符里含有双字节字符,例如中文字符,你就不能使用setDataXML()方法,而要使用setDataURL()

最佳模式:在我们的实际应用当中,数据不可能是静态的,可能是有用户选择查询条件,然后提交给服务器,服务器返回一个查询的结果,比如search.jsp?year=2008。所以推荐的最佳模式是使用setDataURL()方法,并且使用javascript加载图形。

注意:在使用setDataURL()方法时,如果地址里含有“?”、“&”等字符,你就需要对这个地址进行URL编码,在js里进行编码,使用escape(url)这个函数,如果你想在服务器进行编码,那就要使用你所用的编程语言进行编码,比如java,则使用编码的类方法是:java.net.URLEncoder.encode()。


【使用request前后台传值】

后台生成字符串  以为Java为例  :将DOM4j生成好的字符串发送前台:

request.setAttribute("xmlStr",xmlStr);

前台读取方式如下:

var chart = new FusionCharts("${pageContext.request.contextPath}/Charts/MSColumn3DLineDY.swf", "0", "800", "350");

//chart.setDataURL("${pageContext.request.contextPath}/xml/Column3D.xml");

chart.setDataXML("${xmlStr}");

chart.render('chartDiv');

【action向$.ajax()传值】

//Action中:

PrintWriter pw = response.getWriter();

pw.write(“要传的值”);

pw.flush();

//js中:

$.ajax({

          url : "ylcgtjQuery!getYuzhiset.action",

          type : "POST",

          data: "selYear="+selYear+"&selMonth="+selMonth,

          dataType : "text",

          success : function(result) {

                      if (result != null) {

                               //result即为传的值

                        }

          }

});

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 136,342评论 19 139
  • 一. Java基础部分.................................................
    wy_sure阅读 3,966评论 0 11
  • 1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语...
    子非鱼_t_阅读 34,026评论 18 399
  • 编码问题一直困扰着开发人员,尤其在 Java 中更加明显,因为 Java 是跨平台语言,不同平台之间编码之间的切换...
    x360阅读 2,571评论 1 20
  • 引子 一眼望去平静无波的湖面,波光粼粼,里面会有什么,没人会认真去想,因为一切都太显...
    乌程阅读 329评论 0 1

友情链接更多精彩内容