Что жаждет загрузки?


162

Что жаждет загрузки? Я пишу код на PHP / JS, но более обобщенный ответ будет очень хорош.

Я видел много вопросов, касающихся Java и Ruby, но я не знаю ни одного из этих языков, и мне трудно читать код. Я не знаю, что делать в первую очередь


Отличный вопрос
PA-GW

Ответы:


384

Есть три уровня:

  1. Стремительная загрузка: вы делаете все по запросу. Классический пример - умножение двух матриц. Вы делаете все расчеты. Это нетерпеливая загрузка;
  2. Ленивая загрузка: вы делаете расчет только тогда, когда это необходимо. В предыдущем примере вы не выполняете никаких вычислений, пока не получите доступ к элементу матрицы результатов; и
  3. Чрезмерная загрузка: здесь вы пытаетесь предугадать, что пользователь попросит, и предварительно загрузить его.

Я надеюсь, что это имеет смысл в контексте, который вы видите.

Позвольте мне привести вам пример «Уэбби».

Представьте себе страницу с изображениями ролловеров, например, для пунктов меню или навигации. На этой странице может работать загрузка изображений тремя способами:

  1. Загрузите все одно изображение , необходимое перед тем, как отобразить страницу ( нетерпеливый );
  2. Загружать только отображаемые изображения при загрузке страницы и загружать остальные, если / когда они требуются ( ленивый ); и
  3. Загружать только отображаемые изображения при загрузке страницы. После загрузки страницы предварительно загрузите другие изображения в фоновом режиме на случай, если они вам понадобятся ( чрезмерное стремление ).

Есть смысл?


3
Хотя вы пошли за борт, выйдя за рамки конкретного вопроса; это все еще отличный ответ. Это коротко, просто и дает пример.
Фил

23

Это противоположность отложенной загрузки , которая откладывает инициализацию объекта до тех пор, пока он не понадобится. Стремительная загрузка инициализирует объект при создании.


1
Я мог бы добавить, что эти термины обычно используются (и, возможно, происходят из?) В контексте ORM (Object Relational Mapper), где вы отображаете объект в таблицу в реляционной базе данных.
Локи

10

Если вы представляете, что у вас есть объект, который называется человек, у которого есть имя, дата рождения и количество менее важных деталей, скажем, любимый цвет, любимая телепрограмма.

Чтобы лениво загрузить этот класс, вы бы инициализировали его, читая, возможно, из базы данных все наиболее часто используемые детали ядра (скажем, имя и дату рождения) и читая только менее использованные детали, когда / если они необходимы, энергичная загрузка противоположна вы загружаете все детали одновременно.

Преимущества ленивой загрузки часто называют эффективностью, однако, если объекты не так сложны, или эффективность не является проблемой, может быть использована активная загрузка.


7
Когда вы думаете об этом, ленивая загрузка - это больше о меньшем объеме памяти и большем количестве вычислений при каждом вызове функции, в то время как энергичная загрузка будет использовать больше памяти и больше вычислений при создании класса и меньше вычислений при вызове функции.
Локи

0

Нетерпеливый загрузки также используется в угловых 8. Это просто означает , что момент , когда приложение загружается в браузере , мы автоматически, мгновенно получить весь код внутри конкретного модуля, например, сказать , что вы только что создали модуль идентификации с зарегистрировались и Signup компонент к нему, который импортируется в модуль приложения .

Напротив, это ленивая загрузка , когда мы говорим модулю приложения, в котором загружен модуль аутентификации, загружать модуль аутентификации только в определенный момент времени, например, когда пользователь идет по определенному маршруту.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.