0

我正在使用带有 datajs 的微风来获取 odata json 结果。

微风.config.initializeAdapterInstances({ dataService: "OData" });

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

微风目前如何公开关于结果是否写入文件夹缓存中的文件的 json 结果处理?这是敏感数据,只应驻留在调用设备的内存中。什么是微风默认值,我将如何检查或更改它?

4

1 回答 1

0

从浏览器缓存的角度来看,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 ...
}
于 2013-04-23T18:20:32.513 回答