2

我知道require只加载一次文件,而load每次调用它时都会加载它。

看起来require在大多数情况下使用更可取。

我的问题是,我什么时候使用load而不是require

4

3 回答 3

2

Load 接受文件的全名路径,例如:

load "/path/to/file.rb"

同时, require 只会加载一次文件,并且不需要您指定 .rb 扩展名:

require "/path/to/file"
require "/path/to/file.rb"

建议您在实践中使用 require 以获得更好的性能,但我读过 Rails 在开发模式下使用负载,因此您不必在每次更改时重新启动服务器。

于 2010-12-01T08:20:47.140 回答
1

好吧,我认为答案就在您的问题中。你写了:

“只需要加载一次文件”

那么现在如果您更改文件或外部更改文件会发生什么?随着load您获得在负载期间保持的“状态”。require没有。

于 2010-12-01T05:57:53.900 回答
1

如果您需要强制重新加载某些内容(常见示例是 Web 服务器或测试服务器)。当有合理的机会不会命中某些代码时,或者您想解决应用程序加载时间问题时,您应该使用自动加载。您应该在所有其他时间使用 require 。

于 2010-12-01T06:13:12.290 回答