2011-07-29 159 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。如果在阅读后您有更具体和直接的问题将他们带回来,我们将尽力帮助您...