fusionCharts dataStreamURL获取服务端数据更新问题解决

来源:互联网 发布:死或生5 mac版 编辑:程序博客网 时间:2024/05/20 08:22
添加数据邮票

考虑这样一个场景,在我们绘制现场的CPU使用监视器FusionWidgets XT实时线图。在这个系统中,我们假设的CPU使用率的变化被记录,每10秒。但是,能够有效地消耗带宽,我们这个数据流的图表每90秒。

要设置刷新间隔,我们设置了初始XML / JSON数据作为下:

 < 图表 dataStreamURL = '以路径/ DataProviderPage.aspx'  refreshInterval = '90' ... > ... 数据... </ >

现在,DataProviderPage.aspx页是负责提供CPU利用率的统计。每次调用时,它需要提供9历史价值(图表调用此页面每90秒,但数据每10秒更新系统)。

在传统的系统中,DataProviderPage.aspx将保持跟踪“什么样的数据,最后发送到图表?” 可以使用会话变量或存储在数据库中。这可有点麻烦在无国籍环境-服务器场中的,塞申斯将不能很好地扩展和利用数据库用于此目的,需要很多额外的代码,你就必须每一个连接的用户的详细信息存储。

FusionWidgets XT采用了智能功能,帮助您轻松解决这个 - 数据邮票。数据邮票基本上是一个令牌传递的信息与每个更新的图表,并返回到服务器,这有助于在轻松识别哪些数据,最后发送到图表吗?“

让我们来看看在行动。

动机

在我们的例子中,理想情况下,我们将做到以下几点:

  1. 图表时,第一次呈现,我们将提供初始的日期/时间数据邮票XML / JSON数据,这样可以通过这个图表数据流URL页面(DataProviderPage.aspx)作为查询字符串。
  2. 现在要求的数据流的的URL页面(DataProviderPage.aspx)邮票(在这种情况下,日期/时间)从querystring提供任何CPU的数据记录后,作为输出数据的时间。建立数据字符串后,它也将追加更新的数据的时间戳,它是提供的最后一个数据的日期/时间。
  3. 整个数据和盖章现在被送到图表实时更新。
  4. 图表将读取该数据,更新视图,然后更新自己的数据邮票。
  5. 再次实时数据图表民意测验,它现在将追加更新的数据杜绝dataStreamURL的请求数据。步骤2,3和4,现在将递归地发生。
 设置

要设置初始数据邮票,在下面的数据,你需要设置以下:

<的... dataStreamURL = 'DataProviderPage.aspx  refreshInterval = '90'  dataStamp = '13:43:45' ... >

正如你可以在上面看到的那样,我们已经添加了数据随着时间的邮票,这是在这个例子13:43:45。每隔90秒,图表将调用以下URL:

DataProviderPage ASPX FCTimeIndex = 35454 dataStamp = 13 43 45

在这里,你可以看到dataStamp已被添加到URL FCTimeIndex仅仅是一个参数添加图表,以避免缓存问题。

现在你代码中DataProviderPage.aspx可以要求这个数据邮票,然后在此时间之后发生提供值。此外,在提供了9个值(最后90秒)您的DataProviderPage.aspx将需要更新数据邮票,通过提供时间的最后CPU读数。因此,输出的数据DataProviderPage.aspx会读一些为:

&label=13:43:55,13:44:05,13:44:15,13:44:25,13:44:35,13:44:45,13:44:55,13:45:05,13:45:15|value=34,23,65,34,23,65,34,45,34&dataStamp=13:45:15

在上面的输出,我们提供:

  • 9个值标签
  • 为相同的价值
  • 更新数据邮票,这是最后一个值在此更新中提供的日期/时间

一旦达到此更新图表,它会自动更新,以绘制9个新的值,也将更新其数据邮票。下一次当图表调用DataProviderPage.aspx的,它会调用以下URL:

DataProviderPage ASPX FCTimeIndex = 37564 dataStamp = 13 45 15 

注意已经更新的datastamp如何实时更新指定。这有助于不断更新的数据邮票,从而保持轨道的最后一个数据发送到图表。


以上是官网上关于dataStamp的介绍,红色标记部分是关键,在处理程序中回传数据时要加入dataStamp的值要不下次你接受的dataStamp值为NULL。


原创粉丝点击