2011-08-03 24 views
8
basit statik alanını kullanarak karşı http çalışma zamanı Cache kullanmak için ana artıları ve eksileri nelerdir

?http çalışma zamanı Cache vs statik sözlük/alanlar

Verileri tüm ASP.NET uygulamasının kapsamında depolamam gerekir.

HttpRuntime.Cache["MyData"] = someHashtable; 

kolayca geçerliliği bir bitiş tarihi ayarlayabilirsiniz önbelleği ile

private static System.Collections.Hashtable _myData; 
public static System.Collections.Hashtable MyData 
{ 
    get 
    { 
     if (_myData == null) 
     { 
      _myData = new System.Collections.Hashtable(); 
      // TODO: Load data 
     } 
     return _myData; 
    } 
} 

cevap

5

Nesneler, (nesneler her zaman aşımına anlamı) açıkça ayarlanmış sürece bilinmeyen son kullanma süreleri vardır. HttpRuntime.Cache ayrıca (isteğe bağlı) önbellek öğesi önceliği ve son kullanma süresi gibi çeşitli diğer özellikleri ayarlamanızı sağlar.

+1

'HttpRuntime.Cache 'kullanırken endişe ettiğim şey, daha büyük miktarda önbelleğe alınmış veriye sahip büyük bir kuruluş uygulamanız olduğunda anahtarların çakışmalarıdır. Gördüğüm gibi, 'HttpRuntime.Cache', öncelik ve son kullanma süresine ek olarak bir tane daha parlak özelliğe sahiptir. ** CacheDependencies **. Bu yüzden, hiçbir zaman sona ermeyen önbelleğe alınmış verilere sahip olmak istediğimde bile, eninde sonunda değişecek ve bu değişiklik önbellek bağımlılıkları (umarım) ile ele alınabilecektir. –

0

vs; Önbellek nesnesi içeriği otomatik olarak sona erer.

da önbellek daha az önemli ürün sunucu yüksek yük aldığında bu yüzden, bu maddenin önce kaldırılır düşük öncelik verilebilir öncelik, verilebilir

cahce ile ancak daima fazladan yapmak zorunda ünite testinde çabalar çünkü ünite testleri sırasında httpcontext mevcut değildir. (El Bir girişi kaldırmak sürece) HashTable içinde nesneleri uygulama havuzu hayatta olduğu gibi yaşamak oysa HttpRuntime.Cache yılında

+0

'HttpContext' beni başım ağrıyor. Fortunatelly, durum böyle değil. 'HttpRuntime.Cache' ünite testlerinde bile erişilebilir. Ancak, tam olarak işlevsel olmak zorunda değil çünkü (http://msdn.microsoft.com/en-us/library/system.web.caching.cache.aspx) ASP dışında kullanmamayı söylüyorlar. .NET uygulamaları. –

0

HttpRuntime.Cache, sona erme aramasını belirtmenize izin verir, ancak statik sözlüğü ile, önbellek öğelerinizin sona erme döngüsünü çalıştırmak için bir sorguyu beklemeniz gerekir.

İlgili konular