我正在使用带有 datajs 的微风来获取 odata json 结果。
微风.config.initializeAdapterInstances({ dataService: "OData" });
我想确保返回的 json 结果仅驻留在客户端内存中,并且不会写入浏览器的客户端文件夹缓存。
微风目前如何公开关于结果是否写入文件夹缓存中的文件的 json 结果处理?这是敏感数据,只应驻留在调用设备的内存中。什么是微风默认值,我将如何检查或更改它?
从浏览器缓存的角度来看,Breeze 不会对任何查询的结果做任何特别的事情。它只是执行一个 ajax 查询并处理结果。
关于浏览器缓存任何 ajax 结果的规则通常是通过让服务器告诉客户端不要缓存结果来处理的。这如何完成取决于服务的编写方式。
如果您为此 OData 端点使用 WCF DataService,您的代码可能如下所示:
注意:我还没有测试过这段代码,所以对它持保留态度。应该有更多关于如何在 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 ...
}