DOCUMENTATION EN LIGNE
DE WINDEVWEBDEV ET WINDEV MOBILE

Aide / WLangage / Fonctions WLangage / Fonctions spécifiques au WEB / Fonctions Ajax
  • Résultat de la procédure serveur
  • Procédures pouvant être appelées par AJAX
  • Divers
  • Anciens navigateurs
WINDEV
WindowsLinuxUniversal Windows 10 AppJavaEtats et RequêtesCode Utilisateur (MCU)
WEBDEV
WindowsLinuxPHPWEBDEV - Code Navigateur
WINDEV Mobile
AndroidWidget AndroidiPhone/iPadWidget IOSApple WatchMac CatalystUniversal Windows 10 App
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.
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
PROCÉDURE 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
PROCÉDURE 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 N>]]])
<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
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.
ajaxEnvoieValeurChampsLa valeur de tous les champs de la page doit être envoyée au serveur. La procédure WLangage serveur utilisera ainsi la valeur des champs en cours de saisie dans le navigateur.
ajaxSansBloquerContexteAWPL'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.
ajaxSynchroniseVariablesServeurL'appel Ajax va transmettre les variables ayant l'attribut <Synchronisé navigateur>.
Attention : ces constantes doivent être utilisées directement (il n'est pas possible d'utiliser une variable pour stocker leur valeur).
<Procédure serveur> : Nom de procédure
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> : Nom de procédure
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
Premier paramètre passé à la procédure <Procédure serveur>.
Attention : Seuls les types simples sont utilisables (chaîne de caractères, entier, ...). Les types structurés ne peuvent pas être utilisés.
<Paramètre N> : Chaîne de caractères optionnelle
Nième paramètre passé à la procédure <Procédure serveur>.
Attention : Seuls les types simples sont utilisables (chaîne de caractères, entier, ...). Les types structurés ne peuvent pas être utilisés.
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.

Anciens navigateurs

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).
Classification Métier / UI : Code neutre
Composante : WDJS.DLL
Version minimum requise
  • Version 10
Commentaires
Des exemples ?
Bonjour, un tutoriel sur l'utilisation de l'ensemble des fonctionnalités serait le bienvenu.
Les exemples fournis sur cette page ne sont même pas implémentés
Butachan
14 déc. 2021

Dernière modification : 27/01/2023

Signaler une erreur ou faire une suggestion | Aide en ligne locale