ou.sp.Library
Bis zur Library Version 22.0.1 konnte man über #import "ou.sp.Library" mehrere Module der Library einbinden. Die "ou.sp.Library" hat dabei folgendene Module, ebenfalls über #import importiert:
"ou.sp.externals.tslib""ou.sp.SqlHelper""ou.sp.SqlResultEntry""ou.sp.SqlResult""ou.sp.StatementBuilder""ou.sp.SqlStatementBuilder""ou.sp.UpdateBuilder""ou.sp.DeleteBuilder""ou.sp.InsertBuilder""ou.sp.QueryBuilder""ou.sp.TableRow""ou.sp.Table""ou.sp.Database"
"ou.sp.PDFHelper""ou.sp.ObjectHelper""ou.sp.MomentHelper""ou.sp.StringHelper"
Durch den #import-Mechanismus wurden viele Komponenten unnötigerweise mehrfach geladen, was zu einer Belastung des Speichers und längeren Ladezeiten führte.
Der Import #import "ou.sp.Library" generierte documents zur Laufzeit etwa 49.150 Zeilen JavaScript-Code, was ~1,7 MB entspricht(!).
Neue Struktur der "ou.sp.Library"
Ab der Library Version 23.0.0 wurde der Importmechanismus komplett auf require umgestellt. Durch diesen Umstieg ändert sich auch die Caching-Logik. Module, die über require importiert werden, werden nur einmalig geladen und im Speicher gehalten. Dadurch reduziert sich der Speicherverbrauch und die Ladezeiten verkürzen sich deutlich.
Das Modul "ou.sp.Library" selber enthält nun alle Module der Library. Beispiel für den Mehrfachimport:
const { version, Logging, Iterators, MomentHelper } = require("ou.sp.Library");
// Verwenden von Logging, Iterators und MomentHelper
context.returnValue = version;
Es wird jedoch empfohlen, die Library-Module einzeln zu importieren, also zum Beispiel:
const { Logging } = require("ou.sp.Logging");
const { Iterators } = require("ou.sp.Iterators");
const { MomentHelper } = require("ou.sp.MomentHelper");
Als Unterstützung für den Umstieg auf require wurde das Intellisense der Library komplett überarbeitet und deutlich verbessert. Eine ausführliche Dokumentation ist zu finden unter: