簡體   English   中英

ASP.Net MVC中的不可見緩存

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM