openrasta緩存確實有服務器端緩存的初步支持,與API,你可以映射到asp.net服務器端緩存,使用ServerCaching屬性。這表示它不完整,對於這個問題也不是openrasta緩存。這是一個需要幾天的工作才能達到一個良好的v1的0.2,它完全支持我想支持的所有場景,即asp.net緩存基礎架構目前不支持的場景(主要是讓OpenRasta中的緩存工作完全像一個http媒介,而不是一個對象,以.net爲中心的存在於asp.net land中,包括客戶端控制服務器高速緩存,以便客戶端可以強制服務器重新執行查詢)。由於我目前沒有客戶端項目正在進行緩存工作,因此很難證明該插件的任何進一步工作是正確的,所以我現在沒有編寫任何代碼。我確實有4天免費提供,所以如果你希望openrasta-caching能夠滿足你的任何要求,那麼可以適應4天的工作。
您可以使用IOperationInterceptor實現更簡單的操作,並使用它來插入asp.net管道,或者更友好的使用squid實現緩存,並依靠openrasta緩存生成正確的http緩存說明。
這就是說,對於你的問題,如果成本在json中,你可能甚至不需要服務器緩存。如果您將最後一次修改或Etag映射到處理程序返回的內容,它將在適當的情況下正確生成304
,並且繞過json呈現一起,只要您的客戶端執行條件請求(應該)。
還有一個建議的API,允許您通過對上次修改/ etag進行第一次查詢來返回304而不檢索任何數據,從而進一步優化您的API。
應該補充說,能夠以編程方式使緩存無效,因爲幾乎所有對資源的更新都通過處理程序進入 –
您正在使用哪個版本的.net? – JPReddy
我正在使用.net 4.0 ..爲什麼? –