Чого прагне завантаження?


161

Чого прагне завантаження? Я кодую PHP / JS, але більш узагальнена відповідь буде просто чудовою.

Я бачив багато питань стосовно Java & Ruby, але я не знаю жодної з цих мов, і мені важко читати код. Я не знаю, що потрібно робити в першу чергу


Чудове запитання.
PA-GW

Відповіді:


383

Є три рівні:

  1. Швидке завантаження: ви робите все, коли вас запитують. Класичний приклад - коли ви множите дві матриці. Ви робите всі розрахунки. Це прагнення до завантаження;
  2. Ледаче завантаження: ви робите розрахунок лише тоді, коли потрібно. У попередньому прикладі ви не здійснюєте жодних обчислень, поки не отримаєте доступ до елемента матриці результатів; і
  3. Надмірне завантаження: саме тут ви намагаєтеся передбачити, що запитає користувач, і попередньо його завантажте.

Я сподіваюся, що це має сенс у контексті, який ви бачите.

Дозвольте навести приклад "Веббі".

Уявіть сторінку із зображеннями, що перевертаються, наприклад, для пунктів меню або навігації. Існує три способи завантаження зображення на цій сторінці:

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

Мати сенс?


3
Хоча ви перебралися за межі конкретного питання; це все-таки відмінна відповідь. Він короткий, простий і дає приклад.
Філ

23

Це протилежне ледачому завантаженню , яке відкладає ініціалізацію об'єкта, поки об'єкт не потрібен. Швидке завантаження ініціалізує об'єкт при створенні.


1
Я можу додати, що ці терміни, як правило, використовуються (а можливо, походять з?) В контексті ORM (Object Relational Mapper), де ви об'єктуєте об’єкт у таблицю у реляційній базі даних.
Локі

10

Якщо ви уявляєте, що у вас є об'єкт, який називається людиною, яка має ім'я, дату народження та кількість менш важливих деталей, давайте скажемо улюблений колір, улюблену телевізійну програму.

Щоб ледаче завантажувати цей клас, ви б почитали його, читаючи, можливо, з бази даних всі основні більш часто використовувані деталі (скажімо ім'я та дату народження), а лише читати в менш використовувані подробиці, коли / якщо вони потрібні, прагнення до завантаження буде навпаки , тобто ви завантажуєте всі деталі одночасно.

Добрози ледачого завантаження часто називають ефективністю, однак якщо об'єкти не такі складні чи ефективність не викликає занепокоєння


7
Якщо ви задумаєтесь над цим, ліниве завантаження - це більше про меншу пам'ять та більше обчислень при кожному виклику функції, тоді як прагнення до завантаження використовує більше пам'яті та більше обчислень при створенні класу та менше обчислень, коли функція викликається.
Локі

0

Швидке завантаження також використовується в кутовій 8. Це просто означає, що миттєво завантажуємо програму всередині браузера, ми автоматично отримуємо весь код всередині конкретного модуля, наприклад, скажімо, що ви тільки що створили модуль Auth з Signin та реєстрацією компонент до нього, який імпортується в модуль додатка .

Навпаки, є ледаче завантаження , яке відбувається, коли ми повідомляємо модулю додатків, в який завантажений модуль Auth , щоб він завантажував модуль Auth лише в певний момент часу, наприклад, коли користувач їде певним маршрутом.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.