问题标签 [lazy-loading]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
1160 浏览

asp.net - 如果 SqlDatareader 一次获取一条记录,而不是一次获取一个字段,那么延迟加载模式就不是……

0 投票
1 回答
1109 浏览

nhibernate - 在运行时更改为延迟加载

我正在使用 nhibernate 以一种非懒惰的方式加载父类,并且我有一组多对多的子类,我想在运行时确定而不是懒惰地加载它。我正在使用 .hbm.xml 映射,并且在加载程序集后尝试更改设置的“惰性”属性,这可能吗?

0 投票
1 回答
1142 浏览

nhibernate - 延迟加载的 NHibernate 标准

谁能告诉我是否可以向 NHibernate 延迟加载的集合添加条件。

例如,假设我有一个包含员工的部门......我通过 id 获取部门,然后我懒加载员工......但是假设有 1000 名员工,我只想要最后雇用的员工30天。

GetDeptById(1)
   |
   --延迟加载员工(其中 HireDate >= 7/1/2009)

似乎我可以使用映射文件中的过滤器来做到这一点......但是我可以在代码中的延迟加载中添加某种标准吗?

0 投票
1 回答
551 浏览

c - Windows 上带有 DLL 的动态模块

我正在用 C 语言编写一个应用程序,它可以在运行时通过模块/共享对象/DLL 进行扩展。这些模块可能使用现有程序的 API,但也可能提供新功能供以后加载的模块使用,因此模块之间可能存在依赖关系。

我目前在 Linux 下的方法是让每个模块定义一个 depends() 函数,该函数返回它所依赖的其他模块名称的列表。这样,我可以自己编译和链接每个模块,使用 dlopen() 加载一个模块,RTLD_LAZY然后首先解决它的依赖关系,然后使用RTLD_GLOBAL. 这工作得很好,完全符合我的要求。它还允许我用不同的版本替换模块,而无需根据它重新编译所有其他模块。

将其移植到 Windows 时会出现实际问题。首先,我还没有找到任何方法来链接 DLL,而无需为其提供所有依赖项的导出符号表。有没有我忽略的?

其次,来自 Windows API 的 LoadLibraryEx 似乎无法执行任何延迟加载,因为它没有让我处理依赖项,而是在它返回之前自行加载所有引用的 DLL。由于我想在将来实际加载模块之前执行版本检查,这根本不是我想要的。有没有办法规避这种行为?

第三个奇怪的事情是,如果不重新编译依赖于它的所有其他模块,我就无法替换 DLL。它有时确实有效,但通常会发生一些疯狂的事情或程序段错误。

甚至可以在 Windows 上编写像这样的模块化应用程序吗?任何建议或不同的方法都非常感谢!

更新:只是为了澄清我的模块如何在 Linux 上使用彼此的函数(我也希望在 Windows 上也有):每个模块只返回它想从所描述的依赖中调用函数的另一个模块的名称() 函数并包含其头文件,然后直接在代码中调用使用的函数而无需任何包装。这是因为 Linux 不要求您在链接时为共享对象解析所有符号。

0 投票
4 回答
940 浏览

java - 为什么在 Struts 1.2.7 中延迟实例化 MessageResourcesFactory?

由于存在双重检查锁定问题,因此我们必须使用同步来保证对以下方法(org.apache.struts.util.MessageResources 类)的并发访问:

惰性实例化

为什么不使用:

渴望实例化

进而:

它将允许对方法 getMessageResources 的并发访问,至少在我的情况下,它可能会被调用很多次。

不使用同步的含义在这里:

http://en.wikipedia.org/wiki/Double-checked_locking

0 投票
2 回答
8141 浏览

c# - 如何使用 NHibernate Projections 检索集合

我懒加载集合,也因为人员表中有很多字段,我正在编写一个投影函数来仅检索某些属性。它适用于属性,而不是其他实体的集合。如果它们作为代理加载我会很好,我可以稍后再获取它们,但现在它只是加载为空。

0 投票
4 回答
1560 浏览

database - In an ORM, does "lazy loading" mean you may not get the results you expect from larger columns?

I was reading about a feature of an ORM called lazy loading, which, it said, means that larger columns are only loaded when the application actually needs them. How would an ORM decide what a "large column" is - would this be, for example, a blob column that can contain a lot of data compared to, say, an unsigned integer column? And when it says it lazy loads the column, does this mean when you run a query, you might not get results for some of the larger columns when you expect to?

0 投票
1 回答
1516 浏览

iphone - iPhone Dev - 多视图应用延迟加载

(只是让你知道我正在学习为 iphone 开发,没有界面生成器)

我正在编写我的第一个多视图应用程序,它有一个根视图控制器和两个其他视图控制器,并且根视图控制器使用延迟加载,所以当 viewDidLoad 时,它创建第一个视图控制器并将其视图添加到子视图,但没有在需要之前创建另一个。但是,在第二个加载后,它们都将停留在那里直到应用程序结束(除非它收到内存警告)。

所以我想知道:当用户切换另外两个视图时,我是否应该卸载另一个正在删除的视图(通过将其设置为 nil - 它是一个保留属性)?所以每次用户点击按钮时,当前的viewcontroller都会被卸载(在从superview中删除之后)并且下一个被加载并添加为子view?

那么这是正确的做法,还是正确的做法,但只有当应用程序有很多视图并且我的视图不够复杂以至于不能证明这样做是正确的,或者这样做是不好的,我应该让 didReceiveMemoryWarning 采取关心它(在 didReceiveMemoryWarning 中,我将当前未显示的视图控制器设置为 nil)?

0 投票
1 回答
1480 浏览

iphone - iPhone Dev - 在哪里放置延迟加载代码

我已经有这样的问题了,但无论如何我已经删除了它。

我有一个非常简单的应用程序,它有一个根视图控制器,它在其他两个视图控制器视图之间切换。所以在我的根视图控制器中,它会延迟加载另外两个视图控制器的实例。每次按下工具栏中的切换按钮时,正在显示的当前视图控制器(其视图)被卸载(设置为 nil),并且新的视图控制器被加载并添加到子视图中。

由于我加载视图控制器并在特定时间卸载,getter 中的延迟加载代码非常令人困惑,因为我实际上不想在使用它们时立即加载它们,我需要先加载它们以便翻转动画看起来不错。所以我想我想让 loadFirstVC 和 loadSecondVC 方法来加载视图控制器。这是一个好主意吗?

0 投票
1 回答
237 浏览

html - HTML:如何在链接单击时停止图像加载

我有一个包含几百张图片的页面。如果用户在加载图像时单击链接,则在加载所有图像之前不会刷新页面。精明的用户按下 ESC 然后单击链接,但我不能指望我的用户这样做。

有没有办法让所有其他操作优先于图像加载?我是否必须进行一些 javascript 延迟加载,然后为非 js 用户破坏该网站?

示例页面http://metaward.com/6