如何在索引更新

时间:2016-01-27 12:04:32

标签: sitecore sitecore8 sitecore-mvc

我正在实施Sitecore 8 Web Api。确切地说,我在Sitecore Services Infrastructre中使用ServiceApiController。我想知道如何从这个控制器缓存JSON输出,只有当我从中获取数据的lucene索引被重建时它才会被更新?

我没有将此控制器注册为控制器渲染,因为显然我们不需要这样做,它只是开箱即用。我只是通过jQuery通过ajax调用读取JSON输出,javascript代码和HTML标记位于MVC视图渲染中。我想在视图渲染上设置缓存没有意义。不是吗?

我该怎么办?

1 个答案:

答案 0 :(得分:3)

最好的选择是使用HtmlCache并在那里存储数据。此缓存在发布时已完成清除,因此使用它是有意义的。

您可以使用SetHtml方法将条目添加到缓存中:

var cache = Sitecore.Caching.CacheManager.GetHtmlCache(Sitecore.Context.Site);
var json = cache.GetHtml("mycachekey");
if (string.IsNullOrWhiteSpace(json))
{
    var json = // build your json output here
    cache.SetHtml("mycachekey", jsonValue);
}
return json;