Понимание предварительно загруженных объектов
Предварительно загруженные объекты поддерживаются только движком 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