2008-09-23 23 views
17

JSF'deki görüntü alanı gizli alanının boyutunu azaltmanın en iyi yolu nedir? Görünüm durumumun yaklaşık 40k olduğunu fark ettim, bu durum istemciye gider ve sunucuya her istekte ve yanıtta sunucuya geri döner, bu durum kullanıcı için önemli bir yavaşlamadır.JSF dosyasında javax.faces.ViewState nasıl azaltılabilir

My Çevre JSF 1.2, MyFaces, Tomcat, Tomahawk, RichFaces

cevap

16

Sunucuya durum tasarrufu ayarlamayı denediniz mi? Bu sadece istemciye bir kimlik göndermeli ve sunucuda tam durumu tutmalıdır. birçok kullanıcı daha sonra aşağı çok daha az yukarı olduğu gibi

<context-param> 
    <param-name>javax.faces.STATE_SAVING_METHOD</param-name> 
    <param-value>server</param-value> 
</context-param> 
+7

Lütfen sunucu durumunun kaydedilmesinin sunucu bellek tüketimini artırdığını unutmayın _a lot_! Çok sayıda kullanıcınız varsa (binlerce) bu çok hızlı bir darboğaz olabilir. – Marcel

+1

Hem belirtilen adres: ' javax.faces.STATE_SAVING_METHOD sunucusu com.sun.faces .enableViewStateIdRenderingD FALSE 'Hala yardımcı olmuyor. Primefaces kullanıyorum. – Damian

11

Eğer müşteriye göndermeden önce Görünüm durumu sıkıştırmak için bu ayarı deneyebilirsiniz MyFaces kullanıyorsanız.

<context-param> 
    <param-name>org.apache.myfaces.COMPRESS_STATE_IN_CLIENT</param-name> 
    <param-value>true</param-value> 
</context-param> ` 
0

Seçeneklerden biri tamamen istemci tarafında görünüm durumunu kaydetmek için ama böyle bir nesne seri hale getirilmeye mümkün olmayan bazı sorunla karşı karşıya kalabilir. Gereksiniminize göre farklı sıkıştırma algoritması/yardımcı programı kullanmayı deneyebilirsiniz, ancak tarayıcı zaten GZip'i varsayılan olarak kullanacağından, ne kadar kazanabileceğinizi bilmiyorum.

+0

Benim en büyük endişe istemciden sunucuya yazının boyutu: Basitçe dosyanın web.xml aşağıdakileri ekleyin. İstemci bir istek gönderdiğinde sıkıştırma gerçekleşmez –