open flash chart 2确实是一个很不错的网页图表生成组件,并且是免费的。但是目前的版本却有一个问题,就是open flash chart 2在IE下刷新无法改变图表,狗遍网络,功夫不负有心人,找到这篇博文:http://java-007.javaeye.com/blog/537832,并在他的启发下,解决在php中open flash chart 2的刷新问题。
官方有个示例代码大致如下:
<html>
<head>
<script type="text/javascript" src="swfobject.js"></script>
<script type="text/javascript">
swfobject.embedSWF(
"open-flash-chart.swf", "pie_chart",
"300", "300", "9.0.0", "expressInstall.swf",
{"data-file":"pie-chart.php"} );
swfobject.embedSWF(
"open-flash-chart.swf", "line_chart",
"500", "300", "9.0.0", "expressInstall.swf",
{"data-file":"line-dot.php"} );
</script>
</head>
<body>
<p>Hello World</p>
<div id="pie_chart"></div>
<div id="line_chart"></div>
</body>
</html>
我们把代码改成如下样子:
<html>
<head>
<script type="text/javascript" src="swfobject.js"></script>
<script type="text/javascript">
var string1="pie-chart.php?ram1="+Math.random();
var string2="line-dot.php?ram2="+Math.random();
swfobject.embedSWF(
"open-flash-chart.swf", "pie_chart",
"300", "300", "9.0.0", "expressInstall.swf",
{"data-file":string1} );
swfobject.embedSWF(
"open-flash-chart.swf", "line_chart",
"500", "300", "9.0.0", "expressInstall.swf",
{"data-file":string2} );
</script>
</head>
<body>
<p>Hello World</p>
<div id="pie_chart"></div>
<div id="line_chart"></div>
</body>
</html>
以上红色代码为改动部分,通过Math.random()在连接后面追加一个随机参数,使得IE每次刷新时都认为是在请求一个新网页,这样刷新时flash图表也跟着刷新了。