Ленивая загрузка - Lazy loading
Ленивая загрузка (также известен как асинхронная загрузка) это шаблон дизайна обычно используется в компьютерном программировании и в основном в веб-дизайне и разработке, чтобы отложить инициализацию объекта до момента, когда это необходимо. Это может способствовать повышению эффективности работы программы при правильном и правильном использовании. Это делает его идеальным в тех случаях, когда осуществляется доступ к сетевому контенту и время инициализации должно быть минимальным, например, в случае веб-страница. Противоположностью отложенной загрузки является жадная загрузка. Ленивая загрузка в основном используется в изображениях в Интернете, чтобы они появлялись только тогда, когда они необходимы, чтобы веб-страницы загружались быстрее.
Реализации
Существует четыре распространенных способа реализации шаблона проектирования отложенной загрузки: ленивая инициализация; а виртуальный прокси; а призрак, а держатель стоимости.[1] У каждого есть свои преимущества и недостатки.
Ленивая инициализация
При ленивой инициализации объект для ленивой загрузки изначально имеет значение null, и каждый запрос объекта проверяет значение null и создает его «на лету», прежде чем вернуть его первым, как в этом примере C #:
частный int myWidgetID;частный Виджет myWidget = значение NULL;общественный Виджет MyWidget{ получить { если (myWidget == значение NULL) { myWidget = Виджет.Загрузить(myWidgetID); } вернуть myWidget; }}
Или с оператор объединения с нулем '??'
частный int myWidgetID;частный Виджет myWidget = значение NULL;общественный Виджет MyWidget{ получить { вернуть myWidget = myWidget ?? Виджет.Загрузить(myWidgetID); }}
Этот метод является наиболее простым в реализации, хотя, если значение null является допустимым возвращаемым значением, может потребоваться использовать объект-заполнитель, чтобы сигнализировать, что он не был инициализирован. Если этот метод используется в многопоточное приложение, необходимо использовать синхронизацию, чтобы избежать условия гонки.
Виртуальный прокси
Виртуальный прокси - это объект с тем же интерфейсом, что и реальный объект. При первом вызове одного из его методов он загружает реальный объект, а затем делегирует его.
Призрак
«Призрак» - это объект, который должен быть загружен в частичном состоянии. Он может содержать только идентификатор объекта, но он загружает собственные данные при первом обращении к одному из его свойств. Например, предположим, что пользователь собирается запросить контент через онлайн-форму. На момент создания все, что мы знаем, это то, что доступ к контенту будет, но какое действие или контент неизвестно.
Пример PHP:
$ userData = массив ( "UID" = > uniqid(), "requestTime" => микровремя(правда), "тип данных" => "", "запрос" => "");если (исет($ _POST['данные']) && $ userData) { // ...}
Держатель стоимости
А держатель стоимости - это универсальный объект, который обрабатывает отложенную загрузку и появляется вместо полей данных объекта:
частный ValueHolder<Виджет> valueHolder;общественный Виджет MyWidget => valueHolder.GetValue();
Веб-реализация
Предоставление браузеру возможности обслуживать и отображать страницы за минимальное время является критически важной потребностью современного современного мира. Самый простой способ реализовать отложенную загрузку:
<img src="image.jpg" alt="..." loading="lazy"> <iframe src="video-player.html" title="..." loading="lazy"></iframe>
В загрузка атрибут поддерживает два значения, ленивый и нетерпеливый. Eager загрузит изображение с приоритетом, в то время как lazy будет загружать его только тогда, когда это необходимо или изображение находится в области просмотра.
Смотрите также
использованная литература
- ^ Мартин Фаулер (2003). Паттерны архитектуры корпоративных приложений. Эддисон-Уэсли. С. 200–214. ISBN 0-321-12742-0.
{{Ленивая загрузка Mozilla Web Dev }}
Эта компьютерное программирование -связанная статья является заглушка. Вы можете помочь Википедии расширяя это. |