2011-09-22 83 views
0

由於AJAX4JSF高內存消耗,我的應用程序出現內存問題。因此,我們決定將NUMBER_OF_VIEWS_IN_SESSION設置爲1,並妥協後退按鈕功能。JSF:NUMBER_OF_VIEWS_IN_SESSION和後退按鈕

但是,在將以下內容添加到web.xml文件後,後退按鈕仍然有效。

<context-param> 
    <param-name>org.apache.myfaces.NUMBER_OF_VIEWS_IN_SESSION</param-name> 
    <param-value>1</param-value> 
</context-param> 

我想明白:後退按鈕仍然工作?我讀過,將NUMBER_OF_VIEWS_IN_SESSION設置爲1會丟失瀏覽器後退按鈕功能。

在此先感謝您的幫助。

回答

0

我讀過設置NUMBER_OF_VIEWS_IN_SESSION爲1失去瀏覽器後退按鈕功能。

要麼你正在閱讀的文章是喋喋不休的廢話或者你誤解了文章。後退按鈕的功能絕不會從服務器端控制

也許這篇文章意味着你不能通過後退按鈕提交從瀏覽器緩存中提供的頁面,因爲這會導致ViewExpiredException。您需要創建一個Filter,其中添加了響應頭以指示瀏覽器不緩存頁面,以便按下後退按鈕將在頁面上激發一個全新的GET請求,這樣您在提交時就不會再獲得ViewExpiredException在該頁面上的表單。

至於高內存消耗,我懷疑你的問題是由別的東西引起的。也許你只是在視圖或會話範圍的bean中拼湊太多數據。仔細閱讀:Why JSF saves the state of UI components on server?最後但並非最不重要的是,在進行假設之前運行一個分析器。

+0

感謝您的回答。在分析生產堆轉儲後,我發佈了這個問題,發現幾乎所有會話都包含大約20Mb的AJAX4JSF數據。我不知道你爲什麼建議我的問題是由其他問題引起的。在此先感謝澄清。 :) 另一個問題。將NUMBER_OF_VIEWS_IN_SESSION設置爲1有什麼缺點? –

+0

20MB?哇,這真的很重要。你在使用JSF 1.x還是2.x? – BalusC

+0

不幸的是,我們使用1.x! :( –