2009-06-04 31 views
5

Bir webapp şu durum var:önbelleğe alma kısmi görünümleri

bir tablo "Çalışanlar" sütun "Bölümü" ve "İşlevini" içerir. Her ikisi de açılır menüdür.

"İşlev" açılır menüsü seçenekleri, seçilen "departmana" bağlıdır. (Bu nedenle her bölümün kendi fonksiyonları vardır)

Bölümü değiştirirken, "DepartmentId" parametresiyle bir denetleyici eylemine ajax çağrısı yapıyorum. Controlleraction üzerinde bir [outputcache] özniteliği vardır, böylece döndürdüğü işlevler her bölüm kimliği için önbelleğe alınır.

Sorunum, sayfanın ilk yüklemesidir. Bir görünümde kontrol kaldırabilir miyim ve önbelleğe almanın avantajlarından yararlanabilir misiniz?

Herkes? 30 görüntüleme ve cevap yok .. Soruma ilişkin herhangi bir ifade var mı? Çok açık? çok zor? çok garip? google için bir şey (altho orada bir çözüm bulamadım)?

cevap

4

Phil Haack, Donut Hole Caching adlı benzer bir konuda kısa bir blog yazısı yazdı. İyi bir başlangıç ​​noktasıdır.

+0

Artık bunu düzeltmezse emin değilim ama yine de cevap olarak işaretliyorum. –

0

Ajax ile değil, görünümü oluştururken işlevleri doğrudan üreten denetleyici eylemini çağırmak istediğinizi mi kastediyorsunuz? Bunu doğru anladıysam, çıktı önbelleğindeki verilere ulaşmanın mümkün olduğunu düşünmüyorum (yine de yanlış olabilirim). Her neyse, eğer alabilirseniz, yine de verileri tekrar çözmeniz gerekir.

Ayrıca departmanı HttpContext.Cache kendinizi kimlikleri

  • Cache deneyebilirsiniz ve hızlı artık OutputCache gerekmez belki o kadar var (her iki eylemlere bunları kullanmak ve çift yok önbellekleme)
  • Veya bölümlerin/işlevlerin sayısı çok büyük değilse, tüm işlevlerle bir json yapısı oluşturabilir, bunları görünümde saklayabilir ve ajax kullanamazsınız.
4

İstediğiniz şeyi yapmak için alt denetleyiciler veya daha iyi kısmi istekler kullanırdım. Tipik bir sayfada tüm sayfayı önbelleğe alma eğiliminde değilim, bunun yerine alanları kısmi istekler aracılığıyla çağrılan farklı eylem yöntemlerine ayırın. Bu şekilde, her bir alanda farklı sürelerle çıkış önbelleği alabilirim. Daha fazla sayfa yaşam döngüsüdür, ancak önbelleğe alındıklarında performans konusunda bir vergi değildirler. Gerçekleştirmeye başlarsa belirli bir alanı korumak ve optimize etmek de çok daha kolaydır.

Deneyimlerimde bu, ajax desenleriyle çok güzel bir şekilde uyuyor, çünkü verilerinizi sadece bir eylem yönteminden alıyorsunuz.

Kısmi istekler bu yardımcı olur here ve alt kontrol here

Umut tartışılmıştır.

İlgili konular