2010-08-10 21 views
6

ViewState CachingGörüntüleme durumunu önbelleğe alma?

Bu harika bir fikir, ancak SharePoint için uygulandı. Düzenli asp.net sayfaları için bir çözüm olup olmadığını merak ediyorum, aynı önbellekleri görüntüleyenler.

+0

Bu oldukça zordur. Sunucunuz oldukça meşgulse (bu yüzden sayfa görüntüleme durumu önbelleğe alınmış olan çok sayıda kullanıcı varsa) ve formunuzu geri göndermeden önce görüntüleme durum önbelleğinizin süresi dolduğunda ne yapardınız? –

+0

@Robert, kullanım süresi dolmayan bir önbellek veya kalıcı ortam kullanın. –

cevap

8

Aslında oldukça basit! Eğer (Oturum, SQL, vb) istediğiniz yere istediğiniz gibi serialize ve depolamak, sen ViewState nesnesi ağacı alabilirsiniz İçeride

SavePageStateToPersistentMedium() 

LoadPageStateFromPersistenceMedium() 

ve: Sadece kendi sayfasında bu iki yöntem geçersiz kılmak gerekir tüm serileştirilmiş blob'u tarayıcıya döndürmek yerine, bir dahaki sefere tekrar bakmak için kullanabileceğiniz benzersiz bir kimlik döndürün.

fikri burada zahmetli ayrıntılı olarak ele alınmıştır: http://msdn.microsoft.com/en-us/library/ms972976.aspx

0

İlk yöntemde size ViewState zaten var olmadığını kontrol etmek gerekir iken

asp.net System.Web.UI.Page: 

SavePageStateToPersistentMedium() 

LoadPageStateFromPersistenceMedium() 

iki yöntemlerinin altındaki geçersiz kılma yoluyla oldukça mümkündür önbellekte ve orada saklamıyorsanız, ikinci yöntemde zaten var ise geri alabilirsiniz.

SessionID ve pageName'i önbellek viewStateKey için anahtar olarak birleştirebilirsiniz.

İlgili konular