ASP.NET 4.5 で ServiceStack を使用しています。ServiceStack の InMemory キャッシングに問題があります。ブラウザから URL を直接呼び出すと、キャッシュされたバージョンが返されますが、JQuery で getJSON を介して呼び出そうとすると、キャッシュされたバージョンは返されず、毎回データが再フェッチされます。
これが基本的なコードビットです...
public class AResponse : IHasResponseStatus
{
public ResponseStatus ResponseStatus { get; set; }
public Html Html { get; set; }
}
public object Get(A request)
{
var cacheKey = UrnId.Create<string>(request.UserKey + request.Id);
var expireInTimespan = new TimeSpan(1, 0, 0);
return RequestContext.ToOptimizedResultUsingCache(base.Cache, cacheKey, expireInTimespan, () =>
{
var ar = new AResponse();
var html = new Html();
html.Test = "test";
ar.Html = html;
return ar;
});
}
...アイデアをありがとう。