如何在WebApi中防止不必要的数据传输?

时间:2016-09-01 17:30:20

标签: caching asp.net-web-api asp.net-web-api2

我遇到的情况是我有一个WebApi端点,我的页面每隔一分钟左右轮询一次数据。每次民意调查都会返回大约10KB的数据,而且我已经意识到在很多情况下数据并没有从之前的民意调查中改变,但它仍然会占用带回的结果。

所以我想知道是否有一种标准方法让WebApi确定结果没有改变,并向浏览器发出信号通知这种情况。

因为端点是无状态的,端点怎么能知道以前的状态是什么?

它应该如何向客户发出这种情况的信号?在大多数情况下,我返回一个强类型对象(如List<T>),因此我无法返回其他UseCachedVersion种对象。我可以返回null,但这并不像我想的那样具有描述性。

这种情况有没有标准做法?

1 个答案:

答案 0 :(得分:1)

您在API /控制器层中使用缓存,如CacheOutput。 http://www.hanselman.com/blog/NuGetPackageOfTheWeekASPNETWebAPICachingWithCacheCowAndCacheOutput.aspx

如果您需要实时更新投票,您可以使用SignalR,只需在服务器进行广播时更新客户端/订阅者。