【问题标题】:How can I prevent unnecessary data transfer in WebApi?如何防止 WebApi 中不必要的数据传输?
【发布时间】:2016-09-01 17:30:20
【问题描述】:

我有一个 WebApi 端点,我的页面每分钟左右轮询一次数据。每次轮询返回大约 10KB 的数据,我意识到在许多情况下,数据与上一次轮询相比没有变化,但它仍然会占用发送回结果的带宽。

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

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

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

对于这种情况有什么标准做法吗?

【问题讨论】:

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


    【解决方案1】:

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

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

    【讨论】:

    • 非常有帮助,谢谢。它把我带到了另一个页面,它很好地描述了我需要使用的设计模式:bitoftech.net/2014/02/08/…
    猜你喜欢
    • 2022-08-16
    • 2021-07-25
    • 1970-01-01
    • 2021-10-09
    • 2023-01-15
    • 1970-01-01
    • 1970-01-01
    • 2012-12-05
    • 1970-01-01
    相关资源
    最近更新 更多