什么是急切的加载?

什么是急切的加载? 我在PHP / JS代码,但更广泛的答案将会很好。

我看到了很多关于Java和Ruby的问题,但是我不知道这些语言中的任何一种,而且我发现很难阅读代码。 我不知道最初应该怎么做

有三个层次:

  1. 急切的装载:当你被问到时,你什么都做。 经典的例子是当你乘两个matrix。 你做所有的计算。 这是渴望加载;
  2. 延迟加载:只在需要时进行计算。 在前面的例子中,在访问结果matrix的一个元素之前,不要做任何计算。 和
  3. 过度加载:这是你尝试和预测用户将要求和预加载它的地方。

我希望在你看到的上下文中有意义。

让我给你一个“Webby”的例子。

设想一个翻页图像的菜单项或导航页面。 有三种方式的图像加载可以在这个页面上工作:

  1. 在渲染页面之前加载所需的每个图像( 急切 );
  2. 在页面加载时仅加载显示的图像,并在需要时加载其他图像( 懒惰 ); 和
  3. 加载页面时仅加载显示的图像。 在页面加载后,在后台预加载其他图像, 以备需要时使用过于急切 )。

合理?

这与延迟加载相反,它延迟对象的初始化直到需要对象。 急切加载在创build时初始化对象。

如果你想象你有一个名字叫做人物的对象,出生date和数量不太关键的细节,可以说最喜欢的颜色,最喜欢的电视节目。

为了延迟加载这个类,你可能会从数据库中读取所有核心的更常用的细节(比如说出生的名字和出生date),只在需要的时候读取较less使用的细节,急切的加载是相反的,即你同时加载所有的细节。

惰性加载的好处通常被认为是高效的,但是如果对象不那么复杂或效率不是问题,则可以使用急切的加载