我想知道require()
在node.js中使用是否等效于延迟加载?
例如,如果我有一个函数需要代码中其他任何地方都不需要的特定node.js包,那么我最好require()
在该函数内部使用它,以便仅在调用该函数时才包含所需的包。
我还不确定是否会由于缺乏对node.js架构的了解而在性能方面有所改善?我想它每次与服务器的连接都会使用更少的内存。但是,当它必须读取程序包时,它会增加磁盘的I
/ O吗,还是将其添加到内存中?
如果是这种情况,我应该走多远,我应该尝试编写尽可能多的代码来编写node.js包吗?
require()
正在按需加载。加载模块后,如果再次运行require()调用,则不会重新加载模块。通过将其放入函数而不是顶层模块代码中,可以延迟其加载,或者如果您从未实际调用该函数,则可以避免加载。但是,由于require()
是同步的并从磁盘加载模块,因此最佳实践是在应用程序启动服务请求之前先加载应用程序启动时需要的任何模块,然后确保在应用程序运行时仅发生异步IO。
节点是单线程的,因此加载模块的内存占用不是按连接进行的,而是按进程进行的。一次性加载模块即可将其存入内存。
只需遵守此处的约定,并在开始处理请求之前在应用程序的顶级范围内需要您需要的模块。我认为这是一种情况,如果您必须询问是否需要以一种不寻常的方式编写代码,那么就不需要以一种不寻常的方式编写代码。
描述 (Description) 延迟加载可应用于图像,背景图像和淡入效果,如下所述 - 对于图像 要在图像上使用延迟加载,请按照给定的步骤进行操作 - 使用data-src属性而不是src属性来指定图像源。 将类lazy添加到图像。 <div class = "page-content"> ... <img data-src = "image_path.jpg" class = "l
问题内容: 我在JPA实体中的延迟加载属性有问题。我读过许多类似的问题,但它们与spring或hibernate有关,并且他们的后代不适用或没有帮助。 该应用程序是在Wildfly应用程序服务器上运行的JEE和JPA2.1。有两个实体,DAO会话bean和servlet将它们放在一起: 当我运行此代码时,它失败并显示: 我对WebLogic / JPA1使用了非常相似的模式,并且运行平稳。任何的想
这是从这里开始的后续行动。 我正在实现一个表,它将数据异步加载到表单元格中。问题是,表单元格有时无法正确更新。有时它会以某种方式“挂起”并永远显示“加载...”。实际值只有在我在表中滚动一点时才会更新。 要复制,请在表格中快速向下滚动应用程序。某些单元格不会显示“延迟加载”值,而是显示占位符字符串。 延迟加载属性如下所示: } 应用程序如下所示: 完整的可运行代码可以在这里找到。
有很多关于“懒惰”的例子和文档。也许我没有明白,但为什么要用它呢?实例化bean成本
问题内容: 如果这是完全相同的内容,请纠正我,我知道这个话题经常被讨论,但是找不到确切的答案。 问题: 在MVC Web应用程序中处理Hibernate对象的最佳实用解决方案是什么? 细节: 我正在使用Hibernate,并希望在可能的情况下利用延迟加载。 我正在使用MVC风格的Webapp。 我讨厌获得延迟加载初始化异常。 我讨厌不得不在事务之间重新连接Hibernate对象。 选项: 渴望装载
问题内容: 假设我们有一个存储客户详细信息的系统和一个存储员工详细信息的系统(假设情况!)。当EmployeeSystem访问Employee时,使用IUserType中实现的WCF从ClientSystem访问Client信息: NHibernate映射: IUserType的实现: 即使我在属性上具有lazy =“ true”,它也会在加载Employee时立即加载Client。这是正确的行为