使用Web服务调用进行ASP.NET缓存

时间:2011-11-14 13:42:48

标签: asp.net caching

  

假设您正在开发一个显示货币的Web应用程序   银行网站的汇率。费率存储在IBM中   银行中的主机和费率可通过网络服务获得。   每次用户访问费率页面时,该页面都会发出请求   大型机。这会在主机上产生过多的负载。   特别是在大多数情况下,交付的费率是相同的。怎么会   您设计了一个缓存架构,可以最大限度地减少Web访问   服务。但与此同时,利率可能在一天内波动   如果费率已更改,则网页不应显示缓存   值但是向Web服务发出另一个请求。你好吗?   设计这样的缓存架构并确保它无效   费率变化?请通过绘制图表来解释。

在这种情况下,您能告诉我ASP.net将如何知道值已更改?我该怎么办?

2 个答案:

答案 0 :(得分:2)

“大型机”必须向Web宣传该值已更改。

例如,您可以实现另一个名为“InvalidateCache()”的Web服务,该服务在调用时会清空缓存。

当费率发生变化时,“大型机”将调用InvalidateCache服务,该服务将清空缓存,以便随后对Rate服务的请求将调用Mainframe以获取新费率。

答案 1 :(得分:0)

enter image description here

以下是说明:

  1. 创建一个仅存储令牌的新网络服务,该令牌可以是日期时间之类的任何内容,或者您​​可以从任何其他算法生成令牌。
  2. 当用户进入需要显示货币汇率的页面时,浏览器会点击该新服务以及令牌。
  3. 如果客户端令牌与服务器匹配,则服务返回 true 响应,否则返回 false 并发送更新的令牌。
  4. 如果响应为真,则浏览器从其缓存中获取数据。
  5. 如果为 false,则浏览器存储更新的令牌并调用主 Web 服务从那里获取数据并将其存储在其缓存中。
  6. 每当货币汇率发生变化时,新网络服务中的令牌都需要更新。