2013-03-11 82 views
2

我有一個包含9個InputText框和2個InputSecret框的JSF頁面。每個框都有一個連接到屬性文件的標籤,一個驗證器(帶有消息),並且包含一個連接到命名會話作用域bean的EL表達式。我使用Glassfish 3.1.2.1作爲應用程序服務器。如果我將project_stage設置爲Development,則在加載或刷新此頁面時會看到明顯的閃爍。它發生得非常快,但似乎背景(正文)在頁面加載之前被清除爲白色。如果我將項目階段設置爲Production,則不會看到閃光燈。什麼是Project_Stage開發這樣做會導致此行爲?JSF頁面在加載過程中閃爍,在project_stage開發中

回答

2

這是瀏覽器特定的行爲,當它從HTTP響應接收的第一個字節和最後一個字節之間需要一段時間時。當接收到第一個字節時,某些瀏覽器將會空白,並在收到最後一個字節時呈現整個新頁面。人眼的幀速率約爲25fps(正如電視使用的那樣)。任何比這更快的東西都不會被人注意到。但是任何比這更慢的事情都會導致可見的空白。

開發階段導致某些部分未被緩存,以便源文件中所做的最新更改立即可見,例如Facelets源文件。它們都是根據每個請求重新編譯和重新分析的。所有這些都會導致頁面加載時間延長一段時間,因此當瀏覽器空白時間超過大約1/25秒時,瀏覽器空白將很快顯示。

你可能要考慮增加web.xml的Facelets的緩衝區大小,以你的最大的HTML輸出的大小,使反應在一個送走的部分,而不是這可能需要一些更多的預處理時間。

E.g. 64KB:

<context-param> 
    <param-name>javax.faces.FACELETS_BUFFER_SIZE</param-name> 
    <param-value>65535</param-value> <!-- 64KB --> 
</context-param> 
+0

感謝您的回答。我建議將緩存大小增加到64KB,並且消除了我在project_stage開發期間看到的頁面加載閃存。 – Marshall 2013-03-21 13:57:24

+0

不客氣。 – BalusC 2013-03-21 14:00:11

相關問題