Spec-Zone.ru › nginx

Понимание предварительно загруженных объектов

Для каждого входящего запроса njs создаёт отдельную виртуальную машину. Это приносит множество преимуществ, таких как предсказуемое потребление памяти или изоляция запросов. Однако, поскольку все запросы изолированы, если обработчику запроса необходимо получить доступ к некоторым данным, он должен читать их самостоятельно. Это неэффективно, особенно когда объем данных большой.

Для решения этой проблемы был введён предварительно загруженный общий объект. Такие объекты создаются неизменяемыми и не имеют цепочек прототипов: их значения нельзя изменить, свойства нельзя добавить или удалить.

Работа с предварительно загруженными объектами

Вот несколько примеров работы с предварительно загруженным объектом в njs:

  • доступ к свойствам по имени:
    preloaded_object.prop_name
    preloaded_object[prop_name]
    
  • перечисление свойств:
    for (i in preloaded_object_name) {
        ...
    }
    
  • применение немодифицирующих встроенных методов, используя call():
    Array.prototype.filter.call(preloaded_object_name, ...)
    

© 2002-2021 Igor Sysoev
© 2011-2024 Nginx, Inc.
Licensed under the BSD License.
https://nginx.org/en/docs/njs/preload_objects.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API