2011-07-29 214 views
-2

我在php中編程。而當你使用一些框架時,就php而言,所有的框架都會加載每個請求。但是,沒有軌道,但是,紅寶石也是interperter ...所以,它是如何工作Ruby on Rails如何工作

+0

咦?什麼是問題? – Starkey

+0

我的意思是,它是如何管理的...它是否加載它的環境(ActiveRecord,ActiveSupport等)的每一個請求,如在PHP中? –

+0

-1經典寫給我的書問題 –

回答

4

不是。 Rails框架緩存了前幾個請求中的所有加載的模塊,類和庫(它不僅僅是第一個請求,因爲它也具有延遲加載以上的事情)。

但是默認情況下,在開發模式下,所有應用程序模塊(mvc)都會在每個請求上重新加載。庫(插件,寶石等)不會重新加載。

+0

我知道。我只是想知道,它是如何做到的。 Ruby是解釋器,所以它必須在程序執行後完成 –

+0

它在每次請求後都沒有完成,它等待新的請求。認爲它是一個運行循環的守護進程。但我知道這不是你想要的。幸運的是,紅寶石和鐵軌以及大量的寶石軌道都依賴於開源,所以如果你真的想要並願意花時間,你可以看看實現。 –

+2

沒有什麼說解釋性語言必須在任何時候停止。 Ruby on Rails通常作爲至少一個持久化進程運行,並將在整個生命週期內爲許多請求提供服務。 PHP是在請求之間故意清除並且每次都從頭開始。 – tadman

0

你的問題是非常開放和太大,真正有效地回答。這是一個好地方:RoR Guides。如果在閱讀後您有更具體和直接的問題將他們帶回來,我們將盡力幫助您...