AYUDA EN LÍNEA
 WINDEVWEBDEV Y WINDEV MOBILE

Este contenido se ha traducido automáticamente.  Haga clic aquí  para ver la versión en inglés.
Ayuda / WLanguage / Funciones WLanguage / Funciones específicas de la Web / Funciones Ajax
  • Resultado del servidor Procedure
  • Procedimientos que pueden ser llamados por AJAX
  • Miscelánea
  • Navegadores antiguos
WINDEV
WindowsLinuxUniversal Windows 10 AppJavaReportes y ConsultasCódigo de Usuario (UMC)
WEBDEV
WindowsLinuxPHPWEBDEV - Código Navegador
WINDEV Mobile
AndroidWidget Android iPhone/iPadIOS WidgetApple WatchMac CatalystUniversal Windows 10 App
Otros
Procedimientos almacenados
Ejecuta un servidor Procedure sin refrescar la Page. Esta función no está bloqueando. Los otros procesos continúan ejecutándose (sin importar si el resultado de la ejecución de Procedure se recupera o no).
Tan pronto como el resultado del procedimiento servidor esté disponible, la función AJAXExecuteAsynchronous llama automáticamente a un procedimiento navegador utilizado para obtener el resultado.
Para evitar el bloqueo de los procesos mientras no se recupere el resultado de la ejecución del servidor Procedure, utilice AJAXExecute.
Ejemplo
// Is AJAX supported by the current browser?
IF AJAXAvailable() = True THEN
// Run the server procedure named "MyProc"
// As soon as the result of the "MyProc" server procedure becomes available,
// the "ProcResult" browser procedure will be run
Res is int
Res = AJAXExecuteAsynchronous(MyProc, ProcResult, CustomerName, Bonus)
// The following processes are run without waiting for the result
...
ELSE
// Processes without using AJAX
...
END
// -- MyProc server procedure // --
// Procedure used to find the data to be modified in the page
PROCEDURE MyProc(CustomerName, RedRate)
// Find data to be modified
...
// Returns the result
RESULT TheResult
// -- ProcResult browser procedure // --
// Procedure automatically called as soon as the result of "MyProc" procedure becomes available
// The "ModifiedData" parameter corresponds to the result of MyProc server procedure
PROCÉDURE ProcResult(ModifiedData, Res)
// Analyze the result and update the modified controls
...
Sintaxis
<Result> = AJAXExecuteAsynchronous([<Options>, ] <Server procedure> , <Browser procedure> [, <Parameter 1> [... [, <Parameter N>]]])
<Result>: Integro
Identificador de la llamada a <Servidor Procedure>. Este identificador será utilizado por las otras funciones AJAX.
<Options>: Constante de tipo Integer
Modo de actualización:
ajaxPostValueOfControlsLos valores de todos los controles de la Page deben enviarse al servidor. El servidor WLanguage llamado Procedure utilizará los valores de los controles que contengan datos introducidos por el usuario.
ajaxStraightCall
(valor predeterminado)
Los controles modificados no se actualizan en Page.
ajaxSynchronizeServerVariablesLa llamada Ajax enviará variables con el atributo <Browser synchronized>..
ajaxUpdateControlsLos controles modificados se actualizan automáticamente en la aplicación Page.
ajaxWithoutLockingAWPContextLa llamada Ajax no utilizará el contexto AWP. Por lo tanto, este contexto no será bloqueado. Se usa para paralelizar las llamadas Ajax en el servidor.
Atención: Esta constante no tiene ningún efecto en Page ni en el proyecto GO.
Atención: estas constantes deben ser utilizadas directamente (no se puede utilizar ningún Variable para almacenar su valor).
<Server procedure>: Nombre de Procedure
Nombre del servidor Procedure a ejecutar (global o local Procedure). Esta Procedure se utiliza para buscar los datos que deben modificarse en la Page.
Este procedimiento tiene el siguiente formato:
PROCEDURE <Server procedure> (<Parameter 1>, <Parameter 2>, ...)
A este Procedure se le debe permitir ser llamado por AJAX (ver las Notas).
<Browser procedure>: Nombre de Procedure
El nombre del navegador Procedure (global o local Procedure) se ejecuta automáticamente tan pronto como el resultado de <Servidor Procedure> esté disponible.
Este procedimiento tiene el siguiente formato:
PROCEDURE <Browser procedure> (<Result of server procedure>,
<Identifier of server procedure>)
donde:
  • <Resultado del servidor Procedure> es una cadena de caracteres correspondiente al resultado devuelto por el <Servidor Procedure>.
  • <Identificador del servidor Procedure> es un número entero que corresponde al identificador de la llamada a <Servidor Procedure> (parámetro <Resultado> de AJAXExecuteAsynchronous).
<Parameter 1>: Cadena de caracteres opcional
Primer parámetro pasado a <Servidor Procedure>.
Atención: Sólo se pueden utilizar tipos simples (cadena de caracteres, entero, etc.). No se pueden utilizar tipos estructurados.
<Parameter N>: Cadena de caracteres opcional
El noveno parámetro pasado a <Servidor Procedure>.
Atención: Sólo se pueden utilizar tipos simples (cadena de caracteres, entero, etc.). No se pueden utilizar tipos estructurados.
Observaciones

Resultado del servidor Procedure

<Servidor Procedure> se utiliza para buscar datos a modificar en la Page. El resultado de esta Procedure (que significa los datos a modificar) puede estar contenido en una cadena de caracteres o en un Document XML (creado y manejado por el Funciones XML).
Para enviar este resultado al navegador, utilice la palabra clave RETURN y especifique:
  • la cadena de caracteres que contiene los datos.
  • el nombre del Document XML que contiene los datos.
<Navegador Procedure> se ejecuta automáticamente tan pronto como este resultado esté disponible. El primer parámetro de <Navegador Procedure> contiene este resultado. A continuación, este resultado debe utilizarse para actualización los datos que se van a modificar.
Si este resultado corresponde al nombre de un Document XML, este Document se transmitirá y creará automáticamente en el navegador. Entonces, esta Document puede ser manejada por la Funciones XML.
Observación: Cuando se utiliza un Document XML:
  • el XML Document no se borra automáticamente del servidor cuando se transmite al navegador.
  • si ya se encuentra en el navegador un Document XML con el mismo nombre, el nuevo Document XML sustituye automáticamente al anterior.

Procedimientos que pueden ser llamados por AJAX

Para asegurar los sitios WEBDEV, los procedimientos del servidor están protegidos de llamadas ilegales (por ejemplo, intentar desviar una sesión).. Para ejecutar un procedimiento servidor desde un proceso navegador (función AJAXExecute o AJAXExecuteAsynchronous), se debe autorizar llamar a este procedimiento mediante AJAX.
Para permitir que un servidor Procedure sea llamado por AJAX, haga clic en "AJAX" en la barra de Procedure:
Procedure que no puede ser llamado por AJAX
Procedure que puede ser llamado por AJAX

Miscelánea

  • La función AJAXAsynchronousCallPending permite saber si un procedimiento servidor llamado mediante la función AJAXExecuteAsynchronous se está ejecutando.
  • AJAXCancelAsynchronousCall se utiliza para cancelar la ejecución de automatic del procedimiento de navegación llamado por AJAXExecuteAsynchronous.

Navegadores antiguos

La función AJAXAvailable permite determinar si el navegador actual soporta AJAX. Si un proceso que utiliza AJAX se ejecuta en un navegador que no es compatible con esta tecnología, el proceso se ejecuta "como si" no utilizara AJAX (por ejemplo, se actualiza toda la página).
Clasificación Lógica de negocio / UI: Código neutro
Componente: WDJS.DLL
Versión mínima requerida
  • Versión 10
Comentarios
Haga clic en [Agregar] para publicar un comentario

Última modificación: 16/03/2023

Señalar un error o enviar una sugerencia | Ayuda local