1

我正在寻找像谷歌金融这样的可缩放图表背后的逻辑。我知道有现成的组件可以做到这一点,但我正在寻找一个解释逻辑的基本示例。

4

2 回答 2

1

写这种东西的人基本上有两个选择。

  1. 加载大量数据,只显示一点点。当用户改变缩放时,使用我们之前没有显示的数据。基本上,我们在页面加载时加载所有数据,以便 Javascript 稍后可以使用它。这更容易写,但速度很慢;有时,您必须加载大量数据才能做到这一点。

  2. 仅加载您需要的数据。当用户与页面交互时,向服务器发出 AJAX 请求,以加载您需要的新数据。

2a. 当您加载新数据时,请存储到目前为止您已加载的所有内容,这样如果它们返回到较旧的缩放设置,您就不需要发出更多的 AJAX 请求。

1 + 2. 只加载你需要的数据,然后显示页面。然后立即加载其他所有内容,但在/除非他们更改缩放设置之前不要显示它。

其中,2 和 2a 可能是最佳选择,而 #1 是“更快完成”的方法。

于 2013-10-20T01:45:28.533 回答
1

谷歌浏览器(和基于 chromium 的浏览器)拥有带有网络功能的开发者工具,可以让您了解发生了什么。

当您加载报价然后更改缩放比例时,您将看到一个新的数据请求。例如:

https://www.google.com/finance/getprices?q=AA&x=NYSE&i=1800&p=30d&f=d,c,v,o,h,l&df=cpct&auto=1&ts=1382233772497

它对每个“缩放级别”发出新请求,这是必要的,因为较大的时间窗口(1 年、5 年)将以较粗的粒度(分别为 1 天、1 周)显示数据

于 2013-10-20T01:53:02.210 回答