2013-04-23 63 views
0

我使用breeze和datajs来获取odata json结果。json处理浏览器文件夹缓存

breeze.config.initializeAdapterInstances({dataService:“OData”});

我想确保返回的json结果仅驻留在客户端内存中,并且不会写入浏览器的客户端文件夹缓存。

breeze当前如何暴露json结果处理是否将结果写入文件夹缓存中的文件?这是敏感数据,只能在呼叫设备的内存中驻留。这是什么微风默认和我将如何检查或改变这一点?

回答

0

Breeze对浏览器缓存透视图中的任何查询结果没有做任何特别的处理。它只是执行一个Ajax查询并处理结果。

有关浏览器缓存任何ajax结果的规则是您通常通过让服务器告诉客户端不要缓存结果来处理的规则。这是如何完成的取决于服务的写法。

如果您使用的是WCF DataService的这个端点的OData您的代码可能是这个样子:

注:我没有测试此代码,以便把它当作一粒盐。有关如何在Microsoft OData或Microsoft WCF数据服务网站上为OData服务设置缓存标头的详细信息,应该有更多信息。

public class ODataService : DataService<Foo> { 

    protected override void OnStartProcessingRequest(ProcessRequestArgs args) { 
     HttpContext.Current.Response.Cache.SetCacheability(HttpCacheability.NoCache); 
     // or possibly 
     // HttpContext.Current.Response.AddHeader("Cache-control", "no-cache"); 
    } 

    ... other code here ... 
}