我知道require
只加载一次文件,而load
每次调用它时都会加载它。
看起来require
在大多数情况下使用更可取。
我的问题是,我什么时候使用load
而不是require
?
我知道require
只加载一次文件,而load
每次调用它时都会加载它。
看起来require
在大多数情况下使用更可取。
我的问题是,我什么时候使用load
而不是require
?
Load 接受文件的全名路径,例如:
load "/path/to/file.rb"
同时, require 只会加载一次文件,并且不需要您指定 .rb 扩展名:
require "/path/to/file"
require "/path/to/file.rb"
建议您在实践中使用 require 以获得更好的性能,但我读过 Rails 在开发模式下使用负载,因此您不必在每次更改时重新启动服务器。
好吧,我认为答案就在您的问题中。你写了:
“只需要加载一次文件”
那么现在如果您更改文件或外部更改文件会发生什么?随着load
您获得在负载期间保持的“状态”。require
没有。
如果您需要强制重新加载某些内容(常见示例是 Web 服务器或测试服务器)。当有合理的机会不会命中某些代码时,或者您想解决应用程序加载时间问题时,您应该使用自动加载。您应该在所有其他时间使用 require 。