PC SOFT

FOROS PROFESIONALES
WINDEVWEBDEV y WINDEV Mobile

Inicio → WEBDEV 2024 → WEBDEV 22 - Variable de session
WEBDEV 22 - Variable de session
Iniciado por GUILLAUME KASIBORSKI, 17,oct. 2017 12:23 - 8 respuestas
Miembro registrado
9 mensajes
Publicado el 17,octubre 2017 - 12:23
Bonjour,

Je débute en Webdev.

En PHP, Java, .Net, il existe les zones mémoires suivantes :
* Contexte Application : Zone mémoire permettant de partager des données entre tous les utilisateurs d'un site (Exemple : Toutes les données de référence d'une application) pendant toute la durée de vie de l'application (démarrage et arrêt du serveur)
* Contexte de Session : Zone mémoire permettant de stocker des données spécifiques à chaque utilisateur. 1 utilisateur = 1 session HTTP. Les utilisateurs d'un site ne peuvent pas accéder aux sessions des autres. On peut y stocker par exemple l'identifiant de l'utilisateur lors de la connexion au site. Ceci évite de le rechercher à chaque fois. La durée de vie de cette session est la connexion et la déconnexion de l'utilisateur

Je n'ai pas réussi à retrouver ces équivalents en Webdev.

Comment doit-on faire en Webdev pour partager des données entre tous les utilisateurs du site ?
Comment doit-on faire en Webdev pour stocker des données tout au long de la connexion des utilisateurs ?

Merci beaucoup par avance - Ce sujet m'inquiète un peu
Publicado el 17,octubre 2017 - 17:54
Bonjour,

Je ne sais pas si cela répond au problème, mais pour le contexte général du site cela se stocke dans n'importe quel fichier (ini, xml, ...) et au démarrage d'une session il suffit de charger les données dans les variables globales au projet, celles qui sont définie par exemple dans le code d'initialisation du projet.

C'est la même chose pour les variables tout au long de la connexion de l'utilisateur : variables globales.

Si cela peut aider ;-).

Jeff.
Publicado el 17,octubre 2017 - 18:12
GUILLAUME KASIBORSKI a pensé très fort :

Bonjour,


Comment doit-on faire en Webdev pour partager des données entre tous les
utilisateurs du site ?


ça cela n'existe pas et je ne vois pas trop l'intérêt.
Mais cela peut se charger en init du projet dans des globales par
lecture de fichiers, de .ini etc ...
Moi par exemple, j'ai une grosse variable chaine et je stocke en xml
des infos.



Comment doit-on faire en Webdev pour stocker des données tout au long de la
connexion des utilisateurs ?


en webdev classique, toutes tes globales sont dispos
en awp, tu peux déclarer des contextes ou sauvegarde cela sur disque


Merci beaucoup par avance - Ce sujet m'inquiète un peu

Pas de quoi !
rien de bloquant en tout cas. Peut être quelques variantes dans ta
façon de procéder, mais il y a tout ce qu'il faut dans WebDev pour ce
genre de choses.


---
Cet email a fait l'objet d'une analyse antivirus par AVG.
http://www.avg.com
Miembro registrado
9 mensajes
Publicado el 24,octubre 2017 - 14:06
Merci pour vos réponses qui m'ont bien aidé.

Explications concernant l'intérêt de partager des données entre tous les utilisateurs d'un site web.

Souvent, dans de nombreuses pages d'un site Internet, on affiche des données de Référence qui se trouvent en base de données.

Si je prends l'exemple d'une application qui serait dans le monde de l'automobile : Affichage de listes déroulantes de toutes les marques de voitures.

Ces informations sont en base de données.
Mais elles sont communes à tous les utilisateurs. Et ne bougent que très rarement. Une mise à jour en temps réel n'est pas nécessaire.
Je n'ai pas envie de faire un accès à la base de données à chaque fois qu'un utilisateur affiche les pages en question (pour optimiser les performances).

L'idée est donc de ne faire qu'un et un seul accès à la base de données pour charger les marques de voiture (lors de l'ouverture du projet par exemple) et de partager ce tableau de marques auprès de tous les utilisateurs.

Est-ce que ma description est claire ?
Miembro registrado
945 mensajes
Popularité : +53 (63 votes)
Publicado el 24,octubre 2017 - 14:14
Bonjour,

Ton explication est claire cependant,

Chaque personne qui naviguera sur ton site, ouvrira ton projet, ouvrira une page et changera de page.

Donc le fait de charger, un combo au début du projet ou a l'ouverture d'une page est identique en terme de charge.

Si tu ne veux pas charger ton combo avec une base de donnée, met les informations en dur, soit dans le code initialisation du combo avec un listeajoute() ou alors dans le contenu initiale.

Ah moins que je ne comprenne vraiment pas ou tu veux en venir, moi je ferai comme ça

jordan
Miembro registrado
9 mensajes
Publicado el 24,octubre 2017 - 15:11
Le chargement de cette liste en dur n'est pas possible dans mon cas de figure.
Ce chargement doit être fait depuis une base de données.

Ce que je souhaiterais faire est ceci :
* Au lancement du serveur ou à la première connexion du premier utilisateur --> Accès à la base de données pour récupérer les infos + Enregistrement dans un tableau qui se trouverait en variable globale par exemple
* Lors de l'affichage des pages contenant ces données (les marques de voiture pour reprendre mon exemple) --> Chargement des listes déroulantes à partir du tableau (et non en refaisant une connexion à la base de données)

Je fais déjà ceci, mais ceci n'est valable que pour 1 utilisateur. La variable globale étant spécifique à chaque utilisateur.
Je voudrais pouvoir stocker mon tableau dans une zone mémoire où tous les utilisateurs pourraient venir.
Miembro registrado
945 mensajes
Popularité : +53 (63 votes)
Publicado el 24,octubre 2017 - 15:37
Tu peux créer une tache planifiée, qui, tous les jours / heures remplie un fichier texte (json, xml, csv) dans ton répertoire de données.
Quand le combo en as besoin il se rempli en ouvrant le fichier en lecteur seule et tout le monde peut y accéder.
Miembro registrado
9 mensajes
Publicado el 24,octubre 2017 - 17:09
Ne serait-il pas plus propre d'utiliser les zones de mémoires partagées ?
https://doc.pcsoft.fr/?1000018934
Miembro registrado
945 mensajes
Popularité : +53 (63 votes)
Publicado el 24,octubre 2017 - 17:21
Si c'est la meme chose, s"i quelqu'un peut me contredire", je dirai que ça fonctionne bien quand on est seul sur le serveur, mais sur un serveur mutualisé gare aux bobos avec la gestion mémoire.

Mais concrètement c'est la meme chose