我正在用 ASP.NET 4.5 开发我的应用程序。我设置了一个网络服务。Jquery 使用 GET Ajax 调用访问 Web 服务。该函数有一个 'id' 参数,并且对于每个 id 它返回不同的内容。
我想在服务器和客户端上缓存该数据。在客户端,我已经知道如何使用“CacheDuration”,但问题出在客户端。我使用 HttpFox 来获取每个响应的标题。
我在函数的开头设置了以下代码:
HttpCachePolicy cache = HttpContext.Current.Response.Cache;
cache.SetCacheability(HttpCacheability.Private);
cache.SetExpires(DateTime.Now.AddMinutes((double)10));
cache.SetMaxAge(new TimeSpan(0, 0, 10));
FieldInfo maxAgeField = cache.GetType().GetField(
"_maxAge", BindingFlags.Instance | BindingFlags.NonPublic);
maxAgeField.SetValue(cache, new TimeSpan(0, 10, 0));
我想要做的是防止客户端再次发送相同 ID 的请求,并这样做让我们说.. 10 分钟。所以在第一次调用时会发出请求,我们得到响应 200。第二次响应头应该是 304。
现在上面的代码没有做到这一点,我想知道如何实现这一点。同样,我正在谈论返回 304 的客户端缓存,因此它希望再次访问服务器以获取相同的“id”,直到缓存过期。
我知道可以使用代码完成,所以请不要提交IIS类型的解决方案。
需要你的帮助来解决这个问题。