PC SOFT

DOCUMENTATION EN LIGNE
DE WINDEV, WEBDEV ET WINDEV MOBILE

  • Résultat de la procédure serveur
  • Procédures pouvant être appelées par AJAX
  • Divers
WINDEV
WindowsLinuxUniversal Windows 10 AppJavaEtats et RequêtesCode Utilisateur (MCU)
WEBDEV
WindowsLinuxPHPWEBDEV - Code Navigateur
WINDEV Mobile
AndroidWidget AndroidiPhone/iPadApple WatchUniversal Windows 10 AppWindows Mobile
Autres
Procédures stockées
AJAXExécuteAsynchrone (Fonction)
En anglais : AJAXExecuteAsynchronous
Exécute une procédure serveur sans rafraîchir la page. Cette fonction n'est pas bloquante. Les autres traitements continuent de s'exécuter normalement (que le résultat de la procédure exécutée soit récupéré ou non).
Dès que le résultat de la procédure serveur est disponible, la fonction AJAXExécuteAsynchrone appelle automatiquement une procédure navigateur permettant de récupérer ce résultat.
Pour bloquer les traitements tant que le résultat de la procédure serveur exécuté n'est pas récupéré, utilisez la fonction AJAXExécute.
Remarque : Les navigateurs anciens ne supportent pas la technologie AJAX (Internet Explorer 5.5 et supérieur, FireFox 1.0 et supérieur, Netscape 7 et supérieur, Opera 8 et supérieur, Safari 1.2 et supérieur, ...). La fonction AJAXDisponible permet de savoir si le navigateur en cours supporte la technologie AJAX. Si un traitement utilisant la technologie AJAX est exécuté sur un navigateur ne supportant pas cette technologie, le traitement s'exécute "comme si" il n'utilisait pas la technologie AJAX (rafraîchissement de la page entière par exemple).
Exemple
// AJAX supporté sur le navigateur en cours ?
SI AJAXDisponible() = Vrai ALORS
// Exécution de la procédure serveur "MaProc"
// Dès que le résultat de la procédure serveur "MaProc" sera disponible,
// la procédure navigateur "ProcRésultat" sera exécutée
Res est un entier
Res = AJAXExécuteAsynchrone(MaProc, ProcRésultat, NomClient, Bonus)
// Les traitements suivants s'exécutent sans attendre le résultat
...
SINON
// Traitements sans utilisation de AJAX
...
FIN
// -- Procédure serveur MaProc // --
// Procédure permettant de rechercher les données à modifier dans la page
PROCEDURE MaProc(ClientNom, TauxRed)
// Recherche des données à modifier
...
// Renvoie le résultat
RENVOYER LeRésultat
// -- Procédure navigateur ProcRésultat // --
// Procédure appelée automatiquement dès que le résultat de la procédure "MaProc" est disponible
// Le paramètre "DonnéesModifiées" correspond au résultat de la procédure serveur MaProc
PROCEDURE ProcRésultat(DonnéesModifiées, Res)
// Analyse du résultat et mise à jour des champs modifiés
...
Syntaxe
<Résultat> = AJAXExécuteAsynchrone([<Options>, ] <Procédure serveur> , <Procédure navigateur> [, <Paramètre 1> [, <Paramètre 2> [, ...]]])
<Résultat> : Entier
Identifiant de l'appel de la procédure <Procédure serveur>. Cet identifiant sera utilisé par les autres fonctions AJAX.
<Options> : Constante de type Entier
Versions 20 et supérieures
Mode de réactualisation :
ajaxActualiseChampsLes champs modifiés sont automatiquement actualisés dans la page.
ajaxAppelSimple
(valeur par défaut)
Les champs modifiés ne sont pas actualisés dans la page.
Versions 23 et supérieures
ajaxSansBloquerContexteAWP
Nouveauté 23
ajaxSansBloquerContexteAWP
ajaxSansBloquerContexteAWP
L'appel Ajax ne va pas utiliser le contexte AWP et donc il ne va pas bloquer ce contexte. Permet de paralléliser les appels Ajax sur le serveur.
Attention : Cette constante n'a pas d'effet en GO de page ou de projet.
Attention : ces constantes doivent être utilisées directement (il n'est pas possible d'utiliser une variable pour stocker leur valeur).
Nouveauté 20
Mode de réactualisation :
ajaxActualiseChampsLes champs modifiés sont automatiquement actualisés dans la page.
ajaxAppelSimple
(valeur par défaut)
Les champs modifiés ne sont pas actualisés dans la page.
Versions 23 et supérieures
ajaxSansBloquerContexteAWP
Nouveauté 23
ajaxSansBloquerContexteAWP
ajaxSansBloquerContexteAWP
L'appel Ajax ne va pas utiliser le contexte AWP et donc il ne va pas bloquer ce contexte. Permet de paralléliser les appels Ajax sur le serveur.
Attention : Cette constante n'a pas d'effet en GO de page ou de projet.
Attention : ces constantes doivent être utilisées directement (il n'est pas possible d'utiliser une variable pour stocker leur valeur).
Mode de réactualisation :
ajaxActualiseChampsLes champs modifiés sont automatiquement actualisés dans la page.
ajaxAppelSimple
(valeur par défaut)
Les champs modifiés ne sont pas actualisés dans la page.
Versions 23 et supérieures
ajaxSansBloquerContexteAWP
Nouveauté 23
ajaxSansBloquerContexteAWP
ajaxSansBloquerContexteAWP
L'appel Ajax ne va pas utiliser le contexte AWP et donc il ne va pas bloquer ce contexte. Permet de paralléliser les appels Ajax sur le serveur.
Attention : Cette constante n'a pas d'effet en GO de page ou de projet.
Attention : ces constantes doivent être utilisées directement (il n'est pas possible d'utiliser une variable pour stocker leur valeur).
<Procédure serveur> : Chaîne de caractères (avec ou sans guillemets)
Nom de la procédure serveur à exécuter (procédure globale ou locale). Cette procédure permet de rechercher les données à modifier dans la page.
Cette procédure est de la forme :
PROCEDURE <Procédure serveur> (<Paramètre 1>, <Paramètre 2>, ...)
Nom de la procédure serveur à exécuter (procédure globale ou locale). Cette procédure permet de rechercher les données à modifier dans la page.
Cette procédure est de la forme :
PROCEDURE <Procédure serveur> (<Paramètre 1>, <Paramètre 2>, ...)
Cette procédure doit être autorisée à être appelée par AJAX (voir les Notes).
<Procédure navigateur> : Chaîne de caractères (avec ou sans guillemets)
Nom de la procédure navigateur (globale ou locale) exécutée automatiquement dès que le résultat de la procédure <Procédure serveur> est disponible.
Cette procédure est de la forme :
PROCEDURE <Procédure navigateur> (<Résultat de la procédure serveur>,
<Identifiant de la procédure serveur>)
Nom de la procédure navigateur (globale ou locale) exécutée automatiquement dès que le résultat de la procédure <Procédure serveur> est disponible.
Cette procédure est de la forme :
PROCEDURE <Procédure navigateur> (<Résultat de la procédure serveur>,
<Identifiant de la procédure serveur>)
où :
  • <Résultat de la procédure serveur> est une chaîne de caractères correspondant au résultat renvoyé par la procédure <Procédure serveur>.
  • <Identifiant de la procédure serveur> est un entier correspondant à l'identifiant de l'appel de la procédure <Procédure serveur> (paramètre <Résultat> de la fonction AJAXExécuteAsynchrone).
<Paramètre 1> : Chaîne de caractères optionnelle (avec guillemets)
Premier paramètre passé à la procédure <Procédure serveur>.
<Paramètre 2> : Chaîne de caractères optionnelle (avec guillemets)
Second paramètre passé à la procédure <Procédure serveur>.
Remarques

Résultat de la procédure serveur

La procédure serveur <Procédure serveur> permet de rechercher les données à modifier dans la page. Le résultat de cette procédure, c'est-à-dire les données à modifier, peut être contenu dans une simple chaîne de caractères ou dans un document XML (créé et manipulé grâce aux fonctions XML).
Pour renvoyer ce résultat au navigateur, il suffit d'utiliser le mot-clé RENVOYER en spécifiant :
  • soit la chaîne de caractères contenant les données.
  • soit le nom du document XML contenant les données.
Dès que ce résultat est disponible, la procédure <Procédure navigateur> s'exécute automatiquement. Le premier paramètre de la procédure <Procédure navigateur> contient ce résultat. Il suffit ensuite de gérer ce résultat pour rafraîchir les données à modifier.
Si ce résultat correspond au nom d'un document XML, ce document sera automatiquement transmis et créé sur le navigateur. Ce document pourra alors être manipulé grâce aux fonctions XML.
Remarque : Dans le cas d'utilisation d'un document XML :
  • le document XML n'est pas détruit automatiquement sur le serveur lors de sa transmission au navigateur.
  • si un document XML du même nom existe déjà sur le navigateur, le nouveau document XML le remplace automatiquement.

Procédures pouvant être appelées par AJAX

Par défaut, pour sécuriser les sites WEBDEV, les procédures serveurs sont protégées de tout appel illégal (tentative de détournement de session par exemple). Pour exécuter une procédure serveur à partir d'un traitement navigateur (fonction AJAXExécute ou AJAXExécuteAsynchrone), il est donc nécessaire d'autoriser l'appel de cette procédure par AJAX.
Pour permettre l'appel d'une procédure serveur par AJAX, cliquez simplement sur le terme "AJAX" dans le bandeau de la procédure :
Procédure ne pouvant pas être appelée par AJAX
Procédure pouvant être appelée par AJAX

Divers

  • La fonction AJAXAppelAsynchroneEnCours permet de savoir si une procédure serveur appelée par la fonction AJAXExécuteAsynchrone est en cours d'exécution.
  • La fonction AJAXAnnuleAppelAsynchrone permet d'annuler l'exécution automatique de la procédure navigateur appelée par la fonction AJAXExécuteAsynchrone.
Composantes
WEBDEV - Code Navigateur WDJS.DLL
Version minimum requise
  • Version 10
Commentaires
Cliquez sur [Ajouter] pour publier un commentaire