首页 新闻 会员 周边

FusionCharts 定时刷新

0
悬赏园豆:30 [待解决问题]

图表用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报表,怎么通过点击按钮加载数据,不是页面一开始就加载。

pengdajian的主页 pengdajian | 初学一级 | 园豆:151
提问于:2014-07-18 09:45
< >
分享
所有回答(1)
0

关键得看你这里var json = PageAction("MyMethod", { id: getQueryStringByName("Id") });取回的数据是否是新的。

Alex_QY1987 | 园豆:1888 (小虾三级) | 2014-07-18 09:52

是新的

支持(0) 反对(0) pengdajian | 园豆:151 (初学一级) | 2014-07-18 09:54

支持(0) 反对(0) pengdajian | 园豆:151 (初学一级) | 2014-07-18 09:59

@pengdajian: 在方法里把chartContainer.html(""),这样先清空一下试试呢?

支持(0) 反对(0) Alex_QY1987 | 园豆:1888 (小虾三级) | 2014-07-18 11:36

@Alex_QY1987: 第二次刷新就是空白的。。。。

支持(0) 反对(0) pengdajian | 园豆:151 (初学一级) | 2014-07-18 11:42

@pengdajian: 你第二次刷新时取出来最后拼接的XML数据最后是什么样子的,你把它输出来,然后第一次就加载这个XML数据看有没有问题。如果第一次都加载不出来,那就有可能是XML拼接出的数据有问题了。

支持(0) 反对(0) Alex_QY1987 | 园豆:1888 (小虾三级) | 2014-07-18 11:46

@Alex_QY1987: 第一次加载没有问题,xml数据和第一次一样,就是不显示,不知道咋搞的

支持(0) 反对(0) pengdajian | 园豆:151 (初学一级) | 2014-07-18 11:48

@pengdajian: ...

这样啊!

那你把这个图表单独做个页面用iframe嵌入吧。定时刷新iframe得了!

支持(0) 反对(0) Alex_QY1987 | 园豆:1888 (小虾三级) | 2014-07-18 13:15
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册