好的,我正在为一家大公司编写一个调度Web应用程序,它需要快速。正常快速(<1s)不会与这些家伙一起削减它,所以我们的目标是<0.5s,这在使用回发时很难实现。
我的问题是:有没有人建议如何最好地缓冲日历/日程安排数据以加快加载时间?
我的计划是加载所选周的数据,然后另一周加载,并使用这些来缓冲输出:即它将永远不会在你要求的那一周加载,它在记忆中总会有这种情况,并且当你下一次改变的时候它会缓冲几周的时间。
但是,我不确定如何实现这一点,使用ajax页面方法时asynch加载很简单,但是在加载后(暂时)存储数据的位置问题:我目前正在使用静态类用字典&gt;要做到这一点,但这可能不是扩展到大用户群的最佳方式。
有什么建议吗?
修改
加载的数据量不是特别高(每个约会上都有一些字段,这些字段被转换为一个小容器类,并对它们进行了一些处理以组织日期并计算并发约会,并且不太可能由于域名,每周会有超过30个约会)但是数据库在应用程序的其他区域负载非常高(这是一个非常大型系统,有数千个用户转移周围的大量信息。)
答案 0 :(得分:2)
您是否将缓冲的内容放在客户端或服务器上?我认为要做的就是将上一周和下周的数据放入页面上的javascript数据结构中,然后让客户为您安排。然后你就可以在下周打开一个缓冲的邻居周时异步回弹到服务器,所以你总是提前一周,假设数据只能在一周内访问 - 周道。
为了实验,我还想看看如果你把更多的日历数据放到页面中以便用Javascript处理会发生什么 - 这种类型的数据往往很小,甚至很多信息几乎没有加起来在数据传输方面相当于一个小图像 - 您可能会发现您可以提前缓存一些缓存的信息。
可以很容易地假设因为你拥有像Ajax这样的工具你应该一直使用它,但是我确实使用锤子来处理家里的所有工作,所以我在这方面说话很好。
答案 1 :(得分:1)
然而,缓冲在第一页上没有帮助 - 仅在后续的后退/转发请求中。
Tbh我认为没有多大意义,因为您需要支持来自其他来源的超链接和重定向,而不仅仅是后退/前进。您可能还想“跳”到一个月。强制用户前后翻页以达到他们想要的月份实际上需要更长的时间,并且比直接到他们想要的页面的<1s响应时间更令人沮丧。
你最好一般缓存数据(使用像Velocity这样的东西),这样你几乎不会遇到数据库,但即使这对很多用户来说也很难。
我的建议是让它工作,然后使用分析工具(如ANTS Profiler)查看一旦功能正确就可以优化哪些代码。