我是一名曾经的PHP开发者,现在正在学习Rails和Sinatra。在PHP中,每个页面请求都会加载所有必需的文件。如果我更改了一些代码并刷新页面,我可以确定代码是最新的。
在Rails 3中,每次请求控制器代码都是最新的。但是,如果我修改/lib文件夹中的任何代码,则需要重新启动服务器才能使更改生效。
为什么会这样?这与Ruby的设计有关吗?Rails是否进行了一些优化以避免在每个请求上重新加载代码?
谢谢!
编辑:我主要对底层发生的事情感兴趣。像Rails和Sinatra这样的框架是否会为类执行某些特殊缓存?如果是这样,它们会做什么?默认行为在Ruby中是所有代码在每个请求上重新加载吗?为什么我们需要像Sinatra的Shotgun工具(http://sinatra-book.gittr.com/#automatic_code_reloading)这样的工具?
在Rails 3中,每次请求控制器代码都是最新的。但是,如果我修改/lib文件夹中的任何代码,则需要重新启动服务器才能使更改生效。
为什么会这样?这与Ruby的设计有关吗?Rails是否进行了一些优化以避免在每个请求上重新加载代码?
谢谢!
编辑:我主要对底层发生的事情感兴趣。像Rails和Sinatra这样的框架是否会为类执行某些特殊缓存?如果是这样,它们会做什么?默认行为在Ruby中是所有代码在每个请求上重新加载吗?为什么我们需要像Sinatra的Shotgun工具(http://sinatra-book.gittr.com/#automatic_code_reloading)这样的工具?