我编写了一个在SharePoint中使用的处理程序,它将从查询字符串中的给定参数生成JSON字符串。然后,JS函数将使用此JSON字符串将HTML中的相关数据显示给客户端,但是,调用有点昂贵,并且希望将输出缓存一次。
处理程序当前迎合了有关OUTPUT缓存的所有内容,并在应用程序中进行了测试,但是,我感到困惑的是,特别是在SharePoint(2007)中,“If-Modified-Since”标头属性从未出现,基本上它总是以null
的形式返回。
我发现blog-on-blog在图片方面讨论了这个问题,包括文件,但我找不到与页面(ASPX,AXD,ASHX)和处理程序自身有关的任何具体内容。
我唯一的假设是我使用的是AXD文件,默认情况下OUTPUT缓存不直接支持该文件?
代码类似于:
bool isModifiedSinceLast = (context.Request.Headers.Get("If-Modified-Since") != null)
: true
? false;
if (!isModifiedSinceLast)
{
context.Response.Headers.AppendHeader("If-Modified-Since", Guid.NewGuid());
}
else
{
// complete the call from cache
}
谢谢,
埃里克