2013-04-23 40 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 ... 
}