1

我搜索了一些教程,浏览了一些 SO 答案,但无法找到解决我问题的方法。

我正在编写一个应该显示几乎实时股票图表的网站。数据存储在不断更新的 MySQL 数据库中,我编写了一个 find_by_sql 查询代码,它获取绘制图表所需的所有数据。一切都很好,除了性能 - 不同查询从数据库中获取所有数据需要一秒到一分钟,这次包括必要的(My)SQL 服务器端计算。这简直不能接受。

我得到了以下想法:如果一次从 MySQL 服务器查询数据而不是整个数据集,则只需大约 1-100ms 即可获得单个点。

我想数据获取过程可能是浏览器驱动的。在用户按下按钮以绘制图表后,控制器向数据库发出一个请求,并呈现一个进度条,比如说准备好 1%。当浏览器得到响应时,它立即发出(ajax)请求,服务器获取下一条数据并呈现“2%”。

以此类推,直到所有数据都准备好并且服务器显示请求的图表。这可以在rails+js中实现吗,网上有解决类似问题的教程吗?我想如果这件事完全可行,那么之前应该已经有人这样做了。

我已经阅读了几篇关于 ajax 的文章,我相信我确实了解一般原则,但我自己从未做过非平凡的 ajax 编程。

谢谢你的时间!

4

1 回答 1

1

您可以使用显示动画 gif(表示“工作”)的 div 加载页面。然后,使用 body onload 启动您的 ajax 请求并替换该 div 的内容。

<body onload="some function call to Ajax.Updater('chart')">
<div id="chart">
  <img src="working.gif">
</div>
于 2010-04-01T02:27:34.597 回答