代码之家  ›  专栏  ›  技术社区  ›  Ed James

日历的异步输出缓冲区(c)

  •  0
  • Ed James  · 技术社区  · 16 年前

    好的,我目前正在为一家大公司编写一个计划Web应用程序,它需要 快速的 . 普通的快速(<1s)并不是和这些人一起剪的,所以我们的目标是<0.5s,这在使用回发时很难实现。

    我的问题是:是否有人建议如何最好地缓冲日历/日程数据以加快加载时间?

    我的计划是加载所选周的数据,以及 两边再过一周 ,并使用这些缓冲输出:也就是说,它将永远不会加载您所要求的一周,它将始终在内存中,并且它将缓冲您下一次更改时两侧的周。

    但是,我不确定如何实现这一点,在使用Ajax PageMethods时异步加载很简单,但问题是在加载后(临时)在哪里存储数据:我目前使用的是一个静态类和一个字典>来实现这一点,但在扩展到大型用户库时,这可能不是最好的方法。

    有什么建议吗?

    编辑

    加载的数据量并不特别高(每个约会上都有几个字段,这些字段被转换为一个小容器类,并对它们进行一些处理以组织日期和计算并发约会,而且由于域的原因,每周不太可能有超过30个约会),但是数据库来自应用程序的其他区域的负载非常高(这是 非常 大规模的系统,成千上万的用户传输大量信息)。

    2 回复  |  直到 16 年前
        1
  •  2
  •   glenatron    16 年前

    那么,您是将缓冲内容放在客户机还是服务器上呢?我认为要做的事情是将前几周和下几周的数据放到页面上的一个javascript数据结构中,然后让客户机为您安排它。接下来的一周,当一个缓冲的邻居周打开时,您可能会异步地返回到服务器,因此您总是像前面所说的那样提前一周,假设每周只能访问数据。

    为了实验的目的,我还想看看如果你在页面中放入更多的日历数据来用javascript处理会发生什么-这种类型的数据通常非常小,甚至很多信息在数据传输方面几乎不等于一个小图像-你很可能会发现你可以安静地信息提前缓存。

    可以很容易地假设,因为你 像Ajax这样的工具你应该一直在使用它,但是我在家里几乎所有的工作都使用锤子,所以在这方面我是一个很好的人。

        2
  •  1
  •   Neil Barnwell    16 年前

    不过,缓冲在第一页上没有帮助,只有在随后的后退/前进请求上。

    我不认为有太多的意义,因为你想支持超链接和来自其他来源的重定向,就像或不仅仅是后退/前进。你可能还想“跳”到一个月。强迫用户前后翻页以达到他们想要的月份实际上要比直接进入他们想要的页面的<1s响应时间更长,更令人沮丧。

    通常情况下,最好是缓存数据(使用类似于Velocity的方法),这样就几乎不会碰到数据库,但对于许多用户来说,这也会很困难。

    我的建议是让它正常工作,然后使用一个分析工具(如ants profiler)来查看一旦功能正确,您可以优化哪些代码位。