2013-07-11 33 views
1

我開始使用Play框架, 我試過了一些例子,我不知道它究竟是如何在頁面刷新上起作用的:是重新編譯所有文件還是隻是修改了那些文件?播放重新編譯刷新所有文件?

+1

請註明您所使用的playframework的版本。 –

回答

2

您可以閱讀這篇文章,這也解釋了遊戲的火爆重裝如何工作的:http://jto.github.io/articles/play_anatomy_part2_sbt/

基本上,在文件更改SBT(在遊戲中使用的建築工具)認識到什麼需要重新編譯在您的實例重新插入新的代碼。

請注意,它只適用於無狀態的環境,因爲它不會垃圾,也不會重新啓動舊對象。在無國界的世界裏,每一個請求都會創建它所需的所有對象,並且不會從外部取得任何東西如果您使用帶有Play的websockets,您可能會遇到一些奇怪的行爲,因爲websockets是有狀態的(您必須打開一個新套接字才能獲取更改)。

1

只有在您第一次打開瀏覽器時,Play纔會編譯整個項目。這意味着您第一次在瀏覽器中運行它可能會加載速度稍慢。我不確定播放是如何識別哪些文件是從上次編譯修改過來的,但要回答您的問題,只編譯修改過的文件。

2

它只在您修改後重新編譯相關文件。下面是遊戲的官方網站上說:

運行服務器在開發模式

In this mode, the server will be launched with the auto-reload feature enabled, 
meaning that for each request Play will check your project and recompile required sources. 
If needed the application will restart automatically. 

作爲一個側面說明,Play使用JNotify監視文件系統的變化。

下面是JNotify鏈接:http://jnotify.sourceforge.net/