2011-05-06 14 views
5

Sık sık değiştirilmeyen bir veritabanından çekilen nesneleri önbelleğe almak istiyorum çünkü sayfa her yüklendiğinde yaklaşık 2000 öğe seçildiğinde sayfa yükleme sırasında dikkat çekici bir performans sorununa neden oluyor.asp.net önbellek httpcontext içinde

inceleme here ve birkaç MSDN makalelerinde (en alakalı here olan) bu veritabanına birden gidiş-dönüş yaparak tek bir kullanıcıyı engellemek için çözümler gibi görünüyor ve HttpRequest kapatıldıktan sonra bu önbellek dolacak Bundan sonra.

Herhangi bir karışıklık varsa, bulursanız geçerli bir başvuru sunabilir mi?

cevap

6

HttpRuntime.Cache öğesindeki öğeleri, uygulama etki alanınızın süresi boyunca burada olacak, zaman aşımına uğratacak veya atılacak öğeler olarak kaydetmek istiyorsunuz. Önce hangisi önce olur. Not Bu, HttpRuntime.Cache'a işaret eden HttpContext.Current.Cache ile tamamen aynıdır. Bir içeriğin var olup olmadığından endişe etmenize gerek kalmayacağından, sonradan davet etmek servis katmanlarında çalışmaktan daha kolaydır. Önbellek her zaman vardır.

HttpContext.Current.Request.Items'da depolanan öğeler yalnızca bu istek boyunca mevcut olacaktır. Bu, uygulamanızın birden çok katmanı ile okunabilen/yazılabilen tek istek bilgilerinin saklanması için kullanışlıdır.

İlgili konular