使用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

你可能感兴趣的:(算法,应用服务器,浏览器,Flash,cgi)