ASP.NET MVC 웹 사이트에서 가능한 모든 것을 캐시하고 완벽하게 작동합니다. 이제 호출이 컨트롤러 작업으로 이동하는 API를 만들었습니다. (http://mysite.com/topics/latest.json)ASP.NET MVC OutputCache JSONP
API는 다른 형식 (json, xml, rss)으로 결과를 반환 할 수 있습니다. 동작에 로딩 반환 데이터 :
[ResponseFilter]
public class HotTopicsController : Controller
{
[OutputCache(Duration = 60, VaryByParam = "none")]
public ActionResult Latest()
{
ViewData.Model = MyService.GetRepository().ApiViewData().Topics().Latest();
return View();
}
}
ResponseFilter 올바른 형식 (JSON, RSS, XML)으로 데이터를 리턴 할 책임이있다.
다른 도메인에서 JSON 요청을 할 수 없으므로 (다른 사람들이 사용할 수 있도록 API를 만들고 싶습니다) JSONP를 사용해야합니다. JSONP에는 콜백 세트가 필요합니다.
응답에서 콜백 이름을 설정해야합니다. OutputCache를 사용하여 기본 캐싱을 수행 할 수 없습니다.
저는 도넛 캐싱에 대한 기사를 알고 있습니다 (Phil Haacked : http://haacked.com/archive/2008/11/05/donut-caching-in-asp.net-mvc.aspx 및 기타). 하지만 이들은 모두 Views 내에서이 주제를 처리합니다. 방금 ViewData.Model을 설정하고 뷰가 없으므로이 방법으로 문제를 해결할 수는 없습니다.
이 문제를 해결하기위한 제안 사항은 무엇입니까?