Spec-Zone.ru › nginx

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

Предварительно загруженные объекты поддерживаются только движком JavaScript njs и недоступны в движке QuickJS.

Для каждого входящего запроса 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-2026 Nginx, Inc.
Licensed under the BSD License.
https://nginx.org/en/docs/njs/preload_objects.html

Spec-Zone.ru

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