图表用js(settimeout)定时刷新,图表不刷新,但是方法是重新执行了。怎么回事?
$(document).ready(function () { getcollect(); }); function getcollect() { var chartPerson = new FusionCharts("../../Scripts/FusionCharts/MSSpline.swf", " ", "100%", "325"); var json = PageAction("MyMethod", { id: getQueryStringByName("Id") }); if (json != null) { $("#kk").html(json[json.length - 1].TotalCount);//此处重新加载 var dataXml = "<chart chartRightMargin='50' rotateValues='true' caption='标题" + json[json.length - 1].TotalCount + "人' numberprefix='' plotgradientcolor='' bgcolor='FFFFFF' showalternatehgridcolor='1' divlinecolor='CCCCCC' showvalues='1' showcanvasborder='1' canvasborderalpha='1' canvasbordercolor='CCCCCC' canvasborderthickness='1' yaxismaxvalue='100' captionpadding='10' linethickness='3' yaxisvaluespadding='15' legendshadow='1' legendborderalpha='1' palettecolors='#f8bd19,#008ee4,#33bdda,#e44a00,#6baa01,#583e78' baseFontSize='12' ><categories>"; $(json).each(function (index, element) { dataXml += "<category label='" + element.CurrentDate + "' />"; }); dataXml += "</categories><dataset seriesname='总人数'>"; $(json).each(function (index, element) { dataXml += "<set value='" + element.TotalCount + "' />"; }); dataXml += "</dataset><dataset seriesname='多次参加人数'>"; $(json).each(function (index, element) { dataXml += "<set value='" + element.MoreCount + "' />"; }); dataXml += "</dataset><styles><definition>" + "<style type='font' name='CaptionFont' type='font' color='123aab' bold='1' />" + "</definition><application>" + "<apply toObject='caption' styles='CaptionFont' />" + "</application></styles></chart>?t=" + new Date().getTime(); chartPerson.setDataXML(dataXml); chartPerson.render("chartContainer"); chartPerson.addParam("wmode", "Opaque"); setTimeout(getcollect, 1000 * 60 * 0.1); } }
使用FusionCharts报表,怎么通过点击按钮加载数据,不是页面一开始就加载。
关键得看你这里var json = PageAction("MyMethod", { id: getQueryStringByName("Id") });取回的数据是否是新的。
是新的
@pengdajian: 在方法里把chartContainer.html(""),这样先清空一下试试呢?
@Alex_QY1987: 第二次刷新就是空白的。。。。
@pengdajian: 你第二次刷新时取出来最后拼接的XML数据最后是什么样子的,你把它输出来,然后第一次就加载这个XML数据看有没有问题。如果第一次都加载不出来,那就有可能是XML拼接出的数据有问题了。
@Alex_QY1987: 第一次加载没有问题,xml数据和第一次一样,就是不显示,不知道咋搞的
@pengdajian: ...
这样啊!
那你把这个图表单独做个页面用iframe嵌入吧。定时刷新iframe得了!