Esta secci¨®n proporciona detalles del preprocesamiento mediante JavaScript.
El preprocesamiento de JavaScript se realiza invocando la funci¨®n de JavaScript con un 'valor' de par¨¢metro ¨²nico y cuerpo de funci¨®n proporcionado por el usuario. El resultado del paso de preprocesamiento es el valor devuelto por esta funci¨®n. Por ejemplo, para realizar la conversi¨®n de Fahrenheit a Celsius, el usuario debe ingresar:
en los par¨¢metros de preprocesamiento de JavaScript, que se incluir¨¢n en una funci¨®n JavaScript por el servidor:
El par¨¢metro de entrada 'value' siempre se pasa como una cadena. El valor de retorno se convierte autom¨¢ticamente en cadena mediante el m¨¦todo ToString() (si falla, el error se devuelve como valor de cadena), con algunas excepciones:
Los errores se pueden devolver arrojando valores/objetos (normalmente ya sea cadenas u objetos de error).
Por ejemplo:
Cada script tiene un tiempo de espera de ejecuci¨®n de 10 segundos (dependiendo del script el tiempo de espera puede tardar m¨¢s en activarse); si se supera, se producir¨¢ un error de retorno. Se aplica un l¨ªmite de almacenamiento din¨¢mico de 512 megabytes (64 megabytes antes de Áú»¢¶Ä²© 6.0.19).
El c¨®digo de bytes del paso de preprocesamiento de JavaScript se almacena en cach¨¦ y se reutiliza cuando el paso se aplica la pr¨®xima vez. Cualquier cambio en los pasos de preprocesamiento de la m¨¦trica har¨¢ que el script almacenado en cach¨¦ se restablezca y se vuelva a compilar m¨¢s tarde.
Fallos consecutivos en el tiempo de ejecuci¨®n (3 seguidos) causar¨¢n que el motor se apague, reiniciadose para mitigar la posibilidad de que un script rompa el entorno de ejecuci¨®n para los siguientes scripts (esta acci¨®n se registra con un nivel de depuraci¨®n 4 y superior).
El preprocesamiento de JavaScript se implementa con Duktape () Motor JavaScript.
Ver tambi¨¦n: Objetos JavaScript adicionales y funciones globales
Es posible utilizar macros de usuario en el c¨®digo JavaScript. Si un gui¨®n contiene macros de usuario, estas macros son resueltas por el servidor/proxy antes de ejecutar los pasos de preprocesamiento espec¨ªficos. Tenga en cuenta que al realizar pruebas de pasos de preprocesamiento en la interfaz, los valores macro no se extraer¨¢n y deben ingresarse manualmente.
El contexto se ignora cuando una macro se reemplaza con su valor. El valor de la macro se inserta en el c¨®digo tal cual, no es posible agregar escapes adicionales antes de colocar el valor en el c¨®digo JavaScript. Tenga en cuenta que esto puede provocar errores de JavaScript en algunos casos.
En el siguiente ejemplo, si el valor recibido excede el valor de una macro {$THRESHOLD}, en su lugar se devolver¨¢ el valor del umbral (si est¨¢ presente):