Votre avis sur la façon de faire: passage de variable

Votre avis sur la façon de faire: passage de variable - ASP - Programmation

Marsh Posté le 18-11-2004 à 09:36:33    

Salut tout le monde,  
 
j'ai une page asp qui inclue fonctions.inc
la page asp est appelée de cette façon: index.asp?lang=fr
fonctions.inc contient une fonction lang() qui en fonction de cette variable fait des requetes et pleins de choses.
 
Or, j'ai besoin de connaitre cette variable dans fonctions.inc, si possible en évitant que la fonction lang() prenne cette variable en paramètre, pour éviter que la fonction lang() soit trop chiante à utiliser.
 
J'espère que vous voyez bien l'histoire.
 
J'ai pensé à inclure fonctions.inc comme un asp du genre: fonctions.inc?lang=fr mais j'imagine que cela ne va pas marcher, et j'imagine surtout qu'il y a une facon plus propre de faire ca.
 
Quelqu'un a-t-il une idée ?
 
Merci d'avance ! :)

Reply

Marsh Posté le 18-11-2004 à 09:36:33   

Reply

Marsh Posté le 18-11-2004 à 13:11:12    

me dites pas que personne a une idée! :)

Reply

Marsh Posté le 18-11-2004 à 13:32:49    

plus ca va et plus je me dis que c'est pas possible en fait! C'est vraiment de la merde l'asp! lol (je dois dire ca sous le coup de la colère, quoi que! :/)

Reply

Marsh Posté le 23-11-2004 à 10:42:08    

L'ASP n'est pas de la merde loin de la ;)  
 
Pour une gestion de langue, j'ai bien une petite idée mais la il faudrait que tu changes pas mal de chose...  
 

Reply

Marsh Posté le 23-11-2004 à 11:08:13    

Une variable de session ou d'application ne résoudrait pas ton probleme ?

Reply

Marsh Posté le 23-11-2004 à 11:22:52    

variable de session dure pas assez longtemps et j'ai pas le droit d'augmenter la durée, mais bon. J'ai fait je sais plus comment, et ca marche à peu pres! lol  
 
merci bcp

Reply

Marsh Posté le 23-11-2004 à 12:28:37    

Ben donc après tu as la variable d'application qui est permanente

Reply

Marsh Posté le 23-11-2004 à 12:28:45    

Si j'ai bien compris, tu fais une requête à chaque fois que tu affiche une page juste pour la langue ? Tendu quand même ;)

Reply

Marsh Posté le 23-11-2004 à 14:18:27    

tout à fait THX, tendu comme tu dis, mais techniquement c'est le seul truc que j'ai le droit de faire!
 
Une question en passant, la variable d'application dépend de l'user ou pas?

Reply

Marsh Posté le 23-11-2004 à 14:42:23    

Comme tu le sais la Session est declenché lorsqu'un nouvelle utlisateur se connecte sur le site et disparait au bout d'un certain temps de deconnection (parametrable). L'application quand a elle existe a partir du moment ou le serveur est lancé jusqu'a qu'il soit arreté (sauf plantage).  
Pour etre clair la variable d'application ne dépend pas du user (encore qu'il faudrait definir ce que tu veut dire par user). Tu as par contre une visibilité totale depuis l'application.

Reply

Marsh Posté le 23-11-2004 à 14:42:23   

Reply

Marsh Posté le 23-11-2004 à 14:56:19    

oui mais dans mon cas. Imagine, j'ai un user fr et un us.
Une variable d'application peut permettre de faire la différence ou pas ?
 
Je crois que non ... non?

Reply

Marsh Posté le 23-11-2004 à 15:02:59    

Passe par un cookie! Ca marche très bien.

Reply

Marsh Posté le 23-11-2004 à 15:35:05    

bob007 a écrit :

tout à fait THX, tendu comme tu dis, mais techniquement c'est le seul truc que j'ai le droit de faire!
 
Une question en passant, la variable d'application dépend de l'user ou pas?


 
Il y a une autre méthode plus simple, tu peux utiliser plusieurs page ASP pour la gestion de tes langues et le gérer par un cookies ou en Querysting au choix...  
 
tu définies tes variables dans une page lang.asp par exemple avec un select case  
 

Code :
  1. <%
  2. dim bidule, machin, truc, chose
  3. Select Case Request.Querystring("lang" )
  4. case "fr"
  5.  %><!-- #include file="fr.asp" --><%
  6. case "eng"
  7.  %><!-- #include file="eng.asp" --><%
  8. case else
  9.  %><!-- #include file="fr.asp" --><%
  10. End Select
  11. %>


 
 
Dans ta page fr.asp  
 
<%
 
bidule = "bidule en fr"
machin = "machin en fr"
truc = "truc en fr"
chose = "chose en fr"
 
%>
 
Dans ta page eng.asp  
 
<%
 
bidule = "bidule en eng"
machin = "machin en eng"
truc = "truc en eng"
chose = "chose en eng"
 
%>
 
Il ne te reste plus qu'a mettre ta page lang.asp en include dans toutes tes pages et remplacer tes textes par ceux que tu as définies  
<!-- #include file="lang.asp"-->
 
<font size=2><%=bidule%></font>
 
Tu n'as plus de requêtes ni quoi que ce soit.


Message édité par THX le 23-11-2004 à 15:38:41
Reply

Marsh Posté le 23-11-2004 à 15:45:37    

bah c en gros ce que j'ai fait sauf qu'au lieu de faire un include, je passe apr une bdd.
 
Merci beaucoup pour la facon de faire en tous cas, si j'ai un peu de temps, je comparerai les deux méthodes

Reply

Marsh Posté le 23-11-2004 à 15:50:17    

Disons que la, ça évite de faire une requête chaque fois que tu affiches une pages ;)  

Reply

Marsh Posté le 23-11-2004 à 16:09:28    

ouais c clair, c'est plus pratique, je vais comparer des que j'ai du temps.
La le script comme il est fait met 70 ms pour afficher une grosse page de test

Reply

Marsh Posté le 24-11-2004 à 12:22:21    

Bon j'ai testé les deux facons de faire, avec et sans bdd. Ta proposition est 195 550 % plus rapide! (oui oui tu as bien lu)
Il faut moins de 0.0036 ms pour une variable en moyenne contre 7,0398 ms avec une requete sql.
 
Merci beaucoup pour la méthode, je fais suivre au chef de proj.

Reply

Marsh Posté le 24-11-2004 à 13:28:21    

Ouaip c'est clair que dès que tu élimines les "requêtes superflues", ça pédale plus vite ;)

Reply

Marsh Posté le 24-11-2004 à 13:33:27    

tu m'étonnes, merci encore pour la méthode! :)

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed