DOCUMENTATION EN LIGNE
DE WINDEVWEBDEV ET WINDEV MOBILE

Aide / Editeurs / Editeur de fenêtres et de pages / Editeur de pages
  • Présentation
  • Importance des sessions prélancées
  • Principe d'une requête d'affichage d'une page AWP
  • Intérêt des sessions prélancées
  • Mise en place
  • Les différentes étapes
  • Activer la détection des erreurs spécifiques aux sessions prélancées
  • Corriger les erreurs spécifiques aux sessions prélancées
  • Activer les sessions prélancées sur le serveur
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
Les sessions prélancées
Présentation
Une session prélancée est une session d'un site Web (ou d'un webservice) lancée automatiquement sur le serveur Web depuis le Serveur d'Application WEBDEV.
L'utilisation des sessions prélancées permet d'accélérer l'affichage des pages en effectuant par anticipation des traitements longs : connexions aux bases de données, chargement des configurations de pages, ...
Les sessions prélancées peuvent être utilisées avec les sites WEBDEV en mode Session, les sites WEBDEV AWP et les webservices SOAP et les Webservices REST. Le mode de fonctionnement est identique dans tous les cas.
Remarque : Les sessions prélancées sont autorisées uniquement sur le serveur illimité ou 10 connexions. Elles ne sont pas actives sur le poste de développement.
Importance des sessions prélancées

Principe d'une requête d'affichage d'une page AWP

Pour comprendre l'importance des sessions prélancées (notamment pour les pages AWP), revenons un instant sur le principe des pages AWP.
Lorsqu'un internaute effectue une requête à partir d'une page AWP, les opérations suivantes sont réalisées :
  1. La requête est transmise du navigateur au serveur Web.
  2. Le serveur Web analyse la requête.
  3. Le serveur Web transmet la requête au Serveur d'application WEBDEV.
  4. Le Serveur d'application WEBDEV :
    • charge le projet correspondant à la page.
    • exécute le code d'initialisation du projet, puis le code de la page.
    • renvoie la réponse au serveur Web.
  5. Le serveur Web renvoie la réponse au navigateur.

Intérêt des sessions prélancées

Lors de l'affichage d'une page AWP, chaque appel au Serveur d'application WEBDEV est totalement indépendant.
Conséquence : A chaque requête (et donc à chaque changement de page, chaque appel Ajax), le Serveur d'application WEBDEV recharge le projet et ré-exécute le code d'initialisation. Ce code d'initialisation du projet exécute souvent des opérations "longues" :
  • connexion à la base de données,
  • chargement des fichiers de configuration,
  • ...
Les sessions prélancées permettent de demander au Serveur d'application WEBDEV de faire ces opérations à l'avance, par anticipation.
Ainsi, lorsque la requête de l'internaute arrive au Serveur d'application WEBDEV, le serveur d'application n'a plus qu'à exécuter la requête et envoyer le résultat.
Les sessions prélancées présentent donc un bénéfice en temps de réponse puisqu'une partie du code est exécuté en avance. Cependant, les sessions pré-lancées ne réduisent pas la charge sur le serveur (le code étant tout de même exécuté) et ne remplacent pas l'optimisation des codes d'initialisation.
Mise en place

Les différentes étapes

Pour mettre en place les sessions pré-lancées dans un projet WEBDEV :
  1. Activez la détection des erreurs spécifiques aux sessions prélancées.
  2. Corrigez les erreurs en utilisant l'événement "Initialisation du projet après connexion au site".
  3. Activez les sessions prélancées sur le Serveur d'application WEBDEV.

Activer la détection des erreurs spécifiques aux sessions prélancées

Si votre projet utilise des sessions prélancées, certaines fonctions ne peuvent plus être utilisées lors de l'initialisation du projet.
Pour connaître les problèmes potentiels lors de l'utilisation des sessions prélancées, il suffit d'activer le mode de détection des erreurs spécifiques aux sessions prélancées :
  1. Affichez si nécessaire le volet "Erreurs de compilation" : sous le volet "Accueil", dans le groupe "Environnement", déroulez "Volets" et sélectionnez "Volets" puis "Erreurs de compilation".
  2. Dans le volet des erreurs de compilation, cliquez sur l'icône .
  3. La liste des erreurs s'affiche.
Remarque : L'activation de la détection des erreurs peut également être effectuée depuis la fenêtre de description de la configuration courante :
  1. Sous le volet "Projet", dans le groupe "Configuration de projet", cliquez sur "Configuration courante".
  2. Dans l'onglet "Compatibilité", cochez l'option "Afficher les erreurs de compilation relatives aux sessions prélancées".
  3. Validez.
  4. Dans le volet des erreurs, la liste des erreurs s'affiche.

Corriger les erreurs spécifiques aux sessions prélancées

Les erreurs des sessions prélancées indiquent les fonctions WLangage interdites dans l'événement "Initialisation" du projet.
Ces fonctions sont les suivantes :
AnnuleContexteAWPSupprime du contexte AWP une variable ajoutée par la fonction DéclareContexteAWP.
AnnuleContexteWebserviceSupprime du contexte du webservice une variable ajoutée par la fonction DéclareContexteWebservice.
ASPAfficheAppelle un script ASP externe et renvoie la page résultat dans la fenêtre en cours du navigateur.
CertificatClientInfoRenvoie des informations sur le certificat utilisé par le poste client.
ChaîneAfficheRenvoie une chaîne spécifique (ou un buffer) sur le navigateur du client en réponse à la requête reçue.
ConfigureContexteAWPConfigure le mode de fonctionnement du contexte AWP.
ConfirmerAffiche un message dans une boîte de dialogue standard proposant les réponses "Oui", "Non", "Annuler" et renvoie la réponse de l'utilisateur.
ContexteFermeFerme un contexte de page.
ContexteOuvreOuvre un nouveau contexte de page sans renvoyer les informations vers le navigateur.
CookieLitRécupère la valeur d'un cookie enregistré sur le poste de l'internaute.
DéclareContexteAWPPermet de déclarer une liste de variables dont la valeur sera persistante entre les affichages successifs des pages AWP.
DéclareContexteWebservicePermet de déclarer une liste de variables dont la valeur sera persistante entre les appels successifs à un Webservice.
ExécuteProcédureDifféréeExécute une procédure différée (dans le serveur d'application WEBDEV).
FichierAfficheAffiche un fichier sur le navigateur de l'internaute.
FramesetActualiseActualise un frameset affiché dans le navigateur de l'internaute à partir du contexte présent sur le serveur.
FramesetAfficheAffiche un frameset WEBDEV dans le navigateur de l'internaute.
FramesetUtiliseAffiche un frameset WEBDEV dans le navigateur de l'internaute et ferme tous les contextes de pages et de framesets en cours.
GglConnectePermet de s'authentifier auprès d'un serveur Google (via le mode d'authentification "OAuth 2.0").
gpwOuvreOuvre la fenêtre ou la page de login du groupware utilisateur.
IdentifiantContexteAWPRenvoie l'identifiant du contexte AWP.
ImagePosXRenvoie la position horizontale (X) du curseur de souris par rapport au champ Image considéré.
ImagePosYRenvoie la position verticale (Y) du curseur de souris par rapport au champ Image cliquable considéré.
ImageZoneRenvoie le numéro de la zone de l'image cliquée par l'internaute.
LibèreContexteAWPLibère de manière anticipée le contexte AWP (sur disque) pour permettre à d'autres appels sur le même contexte AWP d'être traités en parallèle.
NavigateurAdresseIPRenvoie l'adresse IP du poste de l'Internaute connecté au site WEBDEV.
NavigateurNomRenvoie le nom du navigateur de l'internaute ("user agent").
NavigateurPlateformeRetourne la plateforme du navigateur utilisée par l'internaute.
NavigateurTypeRetourne le type du navigateur utilisé par l'internaute.
NavigateurVersionRetourne la version du navigateur utilisé par l'internaute.
OKAnnulerAffiche un message dans une boîte de dialogue standard proposant les réponses "OK" et "Annuler" et renvoie la réponse de l'utilisateur.
OuiNonAffiche un message dans une boîte de dialogue standard proposant les réponses "Oui" et "Non" et renvoie la réponse de l'utilisateur.
PageActualiseActualise une page affichée dans le navigateur de l'internaute à partir du contexte présent sur le serveur.
PageAfficheAffiche une page du site dans le navigateur de l'internaute.
PageAfficheDialogueAffiche une page de manière modale. Cette fonction permet de créer un dialogue avec l'utilisateur. La page est affichée devant et en arrière-plan se trouve la page ouvrante, grisée par le mécanisme de GFI.
PageFermeDialogueFerme la page courante. Cette page a été ouverte avec la fonction PageAfficheDialogue. Une valeur de retour peut être renvoyée à la page appelante.
PageParamètreRenvoie la valeur d'un paramètre passé à la page en cours.
PageUtiliseAffiche une page WEBDEV dans le navigateur de l'internaute et ferme tous les contextes de pages actuellement ouverts sur le serveur.
PHPAfficheAppelle un script PHP externe et renvoie la page résultat dans la fenêtre en cours du navigateur.
rssAfficheConstruit un flux RSS et renvoie le contenu du flux RSS au client.
ScriptAfficheAppelle un script ou une page externe (par exemple .php, .asp, .mhtml ou .mht) et renvoie la page résultat dans la fenêtre en cours du navigateur.
UploadCopieFichierEnregistre sur le serveur un fichier "uploadé" par l'internaute. Cet upload a pu être effectué :
  • via un champ de saisie de type "Upload".
  • via un champ Upload mono ou multi-fichiers.
UploadNomFichierRenvoie le nom d'un fichier "uploadé" par l'internaute. Cet upload a pu être effectué :
  • via un champ de saisie de type "Upload".
  • via un champ Upload mono ou multi-fichiers.
WebserviceAdresseIPClientRenvoie l'adresse IP du poste utilisant et appelant le Webservice.
Pour gérer les sessions prélancées, deux événements sont associés au projet :
  • l'événement "Initialisation" du projet, exécuté avant l'arrivée de la requête sur le Serveur d'application WEBDEV. Ce code est exécuté lors du lancement de la session prélancée.
  • l'événement "Initialisation du projet après connexion au site", exécuté lorsque le Serveur d'application WEBDEV traite la requête.
Pour corriger les erreurs spécifiques aux sessions prélancées, il suffit de déplacer le code correspondant dans l'événement "Initialisation du projet après connexion au site".
Lorsque le site est compatible avec le mécanisme des sessions prélancées, il est possible de le déployer et d'activer les sessions prélancées sur le Serveur d'application WEBDEV.

Activer les sessions prélancées sur le serveur

Pour activer les sessions prélancées pour un site :
  1. Lancez l'administrateur WEBDEV.
  2. Affichez l'onglet "Configuration".
  3. Cochez l'option "Autoriser les sessions prélancées.". Par défaut, tous les sites et webservices ont un nombre de sessions prélancées égal à 0.
  4. Sélectionnez le site ou le webservice à configurer (onglet "Sites" ou onglet "Webservice").
  5. Dans les paramètres du site (option "Paramètres" de l'onglet "Sites") ou du Webservice (option "Paramètres" de l'onglet "Webservices"), précisez le nombre de sessions prélancées à utiliser.
  6. Validez.
Remarques :
  • Les sessions prélancées sont comptées dans le nombre total de connexions au site (ou au Webservice). Cette information doit être prise en compte lors du paramétrage du serveur d'application WEBDEV.
  • Le nombre de sessions prélancées à définir dépend de l'utilisation du serveur et du nombre de requêtes.
    • Quand un utilisateur se connecte (dans le cas d'un site en mode Session) ou affiche une page (cas d'un site AWP), le serveur d'application WEBDEV utilise une session prélancée de cette application s'il en existe une, sinon le serveur d'application WEBDEV lance une session normale (comme si le site n'avait pas de sessions prélancées).
    • Le nombre de sessions prélancées disponibles est vérifié (par site) chaque seconde. Donc le nombre de sessions prélancées dépend du nombre de connexions (cas d'un site en mode Session) ou d'affichages de page (cas d'un site AWP) par seconde.
    • Attention, il faut tenir compte du temps de lancement des sessions prélancées : si une session prend plus de une seconde à se (pré)lancer, le nombre de sessions prélancées effectivement disponible diminue.
Version minimum requise
  • Version 20
Commentaires
Attention en cas de plusieurs profils de déploiement d'un webservice
Si vous avez plusieurs profils de déploiement pour votre webservice, et malgré le fait d'avoir spécifié un nom de déploiement du webservice différent pour chaque profil, la session prélancée cherchera à lancer un fichier awws du nom du profil, mais le fichier généré lors du déploiement reste au nom du projet Windev.
Vous pouvez au moment de l'analyse des fichiers à déployer, constater que le nom du .awws n'a pas été modifié.
Vous pouvez visualiser l'erreur toutes les 2 secondes dans le fichier logErreur.
Le webservice est inexploitable, puisque la session prélancée ne peut pas l'être.
Vous pouvez changer le nom du fichier awws directement dans le répertoire de votre serveur (en attendant que ce problème soit corrigé).
CV
12 oct. 2016

Dernière modification : 12/06/2023

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