[英]Invisible caching in ASP.Net MVC
我正在創建一個頁面,其中包含一些動態生成的圖像,這些圖像是根據來自Web服務的數據構建的。 由於命中Web服務需要花費大量時間,因此圖像生成需要花費大量時間,因此我需要進行一些緩存。
一種選擇是使用OutputCache參數來緩存圖像,但是我不希望強迫某些不幸的用戶等待很長時間。 我寧願將圖像寫到后台文件中並提供靜態html。
最好的方法是什么? 我正在考慮創建一個特殊的URL來觸發將圖像寫入磁盤的刷新,並設置某種計划任務以命中刷新URL。 還有更好的主意嗎?
似乎可以將memcached與ASP.Net一起使用,設置起來有多困難? 似乎對於這種情況(內部工具)而言,這可能是過大的了,而且我已經可以使用基於磁盤的版本,但是我很好奇。
盡管我們只是預先計算文件/圖像並將它們存儲在HttpRuntime.Cache中,但是我們執行類似的操作。 這樣,我們的視圖仍然可以按原樣生成,但是它們通常是從緩存的數據中提取的,而不是即時生成的。
如果無法獲得緩存的數據,我們可以使用getter函數來生成它們:
public static GetGraph(int id)
{
if (HttpRuntime.Cache["image_"+id] == null)
HttpRuntime.Cache["image_"+id] = _imageGen.GenerateGraph(id);
return HttpRuntime.Cache["image_"+id];
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.