`
alexeyomux
  • 浏览: 1536 次
  • 性别: Icon_minigender_1
  • 来自: 贵阳
最近访客 更多访客>>
文章分类
社区版块
存档分类
最新评论

使用Open Flash Chart同时显示多图遇到的问题

阅读更多
    在应用中,我打算使用Open Flash Chart来处理统计数据的图形化显示。当我把一个柱状图和一个饼图放在同一个View里同时显示的时候,只有排在后面(以View中的代码顺序)Chart会在浏览器中正确出现。我看了一下Open Flash Chart官方网站上关于多个Chart在一个View里显示的教程,发现这个问题有一个叫Nick的人遇到过,也向教程的编写者提出来了。
    产生这个问题的原因是:Chart在View中是放在一个Div里显示的,而该插件使用的是将当前系统时间进行Hash后,作为Div的ID的做法。当处理器速度较快时,两个Chart的Hash值是一样的,也就是两个Div的ID是一样的,浏览器自然显示后面一个Div的内容。作者修正了算法,在进行Hash的时候使用了Timw.now+url的做法,该办法解决了Nick的问题,但我使用的是修正后的插件,这个问题仍然存在。
    于是我继续修改插件中算法,在生成用于Hash的原始字符串里加入随机数,甚至加入一个消耗时间的循环,但问题依然存在。(不知道是不是我的机器处理器真的足够快 ) 其间我把WEBrick关掉了重新启动了一次,为的是让服务器重新装入代码运行(包括插件),但不知道此方法是否能保证插件代码被重新装载运行?!
    请教Javaeye的各位达人,有什么办法可以解决这个问题。谢谢!
def open_flash_chart_object(width, height, url, use_swfobject=true, base="/")
  url      = CGI::escape(url)
  # need something that will not be repeated on the same request
  # need the gsub at the end to first get the last newline (which could simply be done with chomp)
  # and second get the newlines in the middle of the encoded string
  special_hash = Base64.encode64(Time.now.to_f.to_s + url.to_s).gsub(/\n/,"")
  obj_id   = "chart_#{special_hash}"  # some sequencing without all the work of tracking it
  div_name = "flash_content_#{special_hash}"
  protocol = "http" # !request.nil? ? request.env["HTTPS"] || "http" : "http"

  return %[
    <div id="#{div_name}"></div>
  (以下省略部分代码)
end
分享到:
评论
6 楼 nmvr2600 2008-08-29  
汗~~
一个字符不同hash也会不同,你可以尝试把其中一个图形的action name改一下。然后你在比较下view里面生成的ID。

怎么能生成一样的呢~~

如果还能一样,我建议你把OFC的插件删了再装一次看看。前面我记得你提到你修改OFC里面那个生成的方法都不起作用。
5 楼 alexeyomux 2008-08-28  
<pre name='code' class='ruby'>def show_result
   
    .
    # prepare data for two chart
    .

    @graph_bar = open_flash_chart_object(600,300,"/show_result/graph_code_for_bar")
    @graph_pie = open_flash_chart_object(600,300,"/show_result/graph_code_for_pie")

end

def graph_code_for_bar
   ...
end

def graph_code_for_pie
...
end
</pre>
<p> </p>
<p> </p>
<p>我就是这样写的,难道是因为Action的名字比较长而不同的字符数太少(只有3个字符,而且位置相同)??</p>
4 楼 nmvr2600 2008-08-28  
  
def index
    @graph1 = open_flash_chart_object(600,300,"/test/graph1")
    @graph2 = open_flash_chart_object(600,300,"/test/graph2")
end

这是作者那个把两个图放在一个view里的代码,不同图形的请求url是不同的啊,一个/test/graph1另一个是/test/graph2,不会得到同样的hash,lz的代码是什么样的,怎么能得到同样的hash?

我自己放了三四个图在一个view里,显示都很正常。
3 楼 alexeyomux 2008-08-28  
我找到了一个不算优雅的做法解决了这个问题,我在Controller里,两次生成Chart的代码之间加入了一个消耗时间用的循环,然后,两个Chart就在浏览器里出现了。。。
希望听下大家更优雅的解决方案!
2 楼 alexeyomux 2008-08-28  
Quake Wang 写道
Tim.now+url是可行的(除非你2个Div请求的chart url是一样的),更新插件是需要重起整个应用的,你检查一下是不是其他代码的原因。


这两个Chart是由同一个Controller生成,交给同一个View显示的,这样说来Url应该是一样的。。。
你说的“更新插件是需要重启整个应用”,是什么意思?关掉WEBrick再引导起来符不符合要求?
1 楼 QuakeWang 2008-08-28  
Tim.now+url是可行的(除非你2个Div请求的chart url是一样的),更新插件是需要重起整个应用的,你检查一下是不是其他代码的原因。

相关推荐

    open flash chart api

    1. **多图表类型**:Open Flash Chart 支持多种图表类型,包括柱状图(bar charts)、饼图(pie charts)、线图(line charts)、面积图(area charts)、散点图(scatter plots)以及组合图表,满足各种数据分析和...

    Open Flash Chart 教程

    Open Flash Chart 是一款开源的Flash图表库,它允许开发者通过简单的JavaScript API生成各种美观的、交互式的图表。这个教程可能是为了帮助用户理解如何利用Open Flash Chart来创建动态和定制化的图表,适合Web...

    Open Flash Chart所需文件

    Open Flash Chart是一款强大的开源Flash图表库,用于在Web应用程序中创建高质量、互动的图表...同时,不断探索和学习ActionScript和JSON等技术,将使你更好地掌握Open Flash Chart的高级特性,提高数据可视化的专业度。

    完整的open flash chart 。

    3. **图表类型**:Open Flash Chart支持多种图表类型,包括折线图、柱状图、饼图、面积图、散点图、甘特图等。这些图表适用于展示各种类型的数据,如趋势分析、比较、分布等。 4. **数据源**:Open Flash Chart可以...

    Open Flash Chart的应用(java),就是很炫的报表了

    这里面有两个java代码工程和 Open ...注:Open Flash Chart是根据传入的json数据的参数不同,来显示不同的chart图,非常的方便。只要学习下各种图形都包含哪些参数,把这些参数设置好,就能很容易的构建出一个图形。

    open flash chart2实例

    Open Flash Chart 2支持多条曲线在同一图表上显示,每条曲线可以设置不同的颜色、线型和点样式。此外,还可以添加网格线、轴标签和数据点标记,以便于数据解读。 3. **柱状图**:柱状图是另一种常用的可视化工具,...

    open flash chart 实例1

    这个实例1是关于如何使用Open Flash Chart进行实际操作并获得成功的一个例子。我们将深入探讨Open Flash Chart的核心特性,以及如何通过`chart.html`和`data.json`这两个文件来实现图表的创建。 1. **Open Flash ...

    open-flash-chart

    Open-Flash-Chart通过提供一套丰富的API,让开发者能够创建各种类型的图表,如折线图、柱状图、饼图、散点图等,以直观地展示复杂的数据。 使用Open-Flash-Chart的主要优点包括: 1. **灵活性**:它提供了大量的...

    rails open_flash_chart

    对于那些仍需支持Flash的项目,理解并掌握Open Flash Chart的使用对于实现数据可视化仍然是有价值的。在实际应用中,开发者可以根据需要结合其他前端库(如D3.js或Chart.js)来实现更现代的、无Flash的图表解决方案...

    open flash chart (web 实例)

    例如,在一个销售管理系统中,可以使用Open Flash Chart 实时展示各产品线的销售数据,通过折线图反映销售趋势,柱状图对比不同产品的销售额,饼图显示各产品占总销售额的比例。 **五、进一步学习与优化** 1. **...

    open flash chart源码加示例

    总的来说,Open Flash Chart是一个强大的图表库,其源代码和多语言接口提供了丰富的自定义和扩展能力。开发者可以根据需求选择适合的编程语言接口,并通过深入研究源代码来提升图表应用的性能和用户体验。无论你是...

    open flash chart 实例2

    《Open Flash Chart实例详解》 ...尽管现代Web开发更多地倾向于JavaScript图表库,如D3.js和Chart.js,但Open Flash Chart在某些场景下仍然是一种有效的选择,尤其是对于需要丰富动画效果和良好兼容性的项目。

    open flash chart 实例3

    在这个实例中,我们将深入探讨如何使用Open Flash Chart进行图表的创建和应用。 Open Flash Chart的核心优势在于其灵活性和定制性。开发者可以通过简单的JavaScript API调用来创建各种类型的图表,包括折线图、柱状...

    在网页中使用Open Flash Chart 展示图表

    在网页中使用Open Flash Chart展示图表是一项常见的数据可视化任务,尤其在那些需要动态、交互式图形的Web应用中。Open Flash Chart是一款开源的Flash图表库,它允许开发者使用简单的JavaScript和服务器端语言(如...

    Open Flash Chart Flash图表

    - **图表类型**:Open Flash Chart支持多种图表类型,包括折线图、柱状图、饼图、散点图、甘特图等,满足不同数据展示需求。 - **XML配置**:通过XML格式的数据文件,可以定义图表的样式、颜色、数据源等属性,...

    open-flash-chart2系列教程

    总结来说,Open Flash Chart 2是一个功能强大且易于使用的图表库,通过JSON数据驱动,支持多种编程接口,适用于各种Web应用的图表展示。掌握OFC2的使用,不仅能提升数据可视化的效果,也能提高开发效率,为项目增添...

    FlashBuilder 4 编译 Open Flash Chart

    总结来说,使用FlashBuilder 4编译Open Flash Chart涉及到项目创建、源码导入、图表实例化、属性设置以及运行环境配置等多个步骤。通过深入学习和实践,开发者可以充分利用OFC的强大功能,为网页应用带来更具视觉...

    open-flash-chart-1.9.6.zip_chart_flash chart_open_open flash cha

    "chart" 指的是图表功能,"flash_chart" 明确了它是基于Flash的图表库,"open" 和 "open_flash_chart" 强调其开源性质,而 "openflash_chart" 是项目名称的另一种拼写方式。 【压缩包子文件】: 1. "open-flash-...

    open_flash_chart 开源 免费 图表控件 .net

    **open_flash_chart** 是一个基于Flash的开源图表库,专为.NET开发者设计,提供免费的图表绘制功能。这个控件允许程序员创建丰富的、交互式的图表,适用于数据可视化的需求,如统计报告、数据分析或者Web应用程序中...

    open-flash-chart中文使用参数对照表

    ### Open Flash Chart 中文使用参数对照表详解 #### 一、概述 Open Flash Chart(简称 OFC)是一款基于 Flash 的图表绘制工具,以其强大的图表功能和简易的操作方式,在 Web 应用开发中得到了广泛的应用。它支持...

Global site tag (gtag.js) - Google Analytics