Afficher message d'attente (page en cours de chargement) pendant la construction de la page asp

Soyez le premier à donner votre avis sur cette source.

Snippet vu 47 994 fois - Téléchargée 36 fois

Contenu du snippet

L'idee est simple :
Faire patienter l'utilisateur avec un message d'attente
pendant le chargement (parfois assez long) de la page (construction cote server)'

Principe :
- Savoir de quelle maniere les parametres ont ete poste (GET / POST)
- Recuperer les infos postees (FORM / QUERYSTRING)
- Afficher le message d'attente
- Reposter les infos

Ajouter <!--#include file="WAIT.asp"--> comme première ligne dans vos pages ASP

Le code du fichier WAIT.asp est ci-joint. Ca marche dans mon application, mais il faudrait tester chez vous pour voir si tous les cas fonctionnent...

Source / Exemple :


<%
'-- Initialisation variable WAIT_refresh
' Permet de savoir si on a deja affiche l'ecran d'attente ou pas (valeur = 1 ou 0)
if isempty(session("WAIT_refresh")) OR isnull(session("WAIT_refresh")) then
	session("WAIT_refresh")="0"
end if

'-- Si on a pas encore affiche le message d'attente (WAIT_refresh=0) :
'
' On l'affiche, on prepare la redirection, et on arrete le traitement de la page en cours,
' et on signale que l'on a deja affiche le message d'attente (WAIT_refresh)
if session("WAIT_refresh")="0" then
	session("WAIT_refresh")="1"
	%>
	<html>
	<head>
	<title></title>
	<!--#include file="styles.inc"-->
	</head>
	<body>
	<TABLE BORDER=0 align="center" height="100%">
		<tr>
			<td height="100%" valign="middle">
				<TABLE BORDER=0 CELLPADDING=0 CELLSPACING=1 CLASS="Table" width="250" height="1">
					<TR class="Table_Titre"><td class="Table_Titre">Chargement en cours</td></TR>
					<TR class="Table_SSTitre"><td  class="Table_SSTitre" align="center"><br><img src="await.gif"><br>Veuillez patienter...<br>&nbsp;</td></TR>
				</table>
			</td>
		</tr>
	</TABLE>
	<DIV style="visibility:hidden">
		<form name="WAIT_go" method="post" action="http://<%=request.servervariables("SERVER_NAME")%><%=request.servervariables("PATH_INFO")%><%if request.servervariables("QUERY_STRING") <>"" then%>?<%=request.servervariables("QUERY_STRING")%><%end if%>">
			<%
			for each item in request.form
				response.write "<input type='hidden' name='" & item & "' value='" & request.form(item) & "'>"
			next
			%>
		</form>
	</div>
	<script>
	<!--
		document.WAIT_go.submit();
	//-->
	</script>
	</body>
	</html>
	<%
	response.end
else
	'
	'-- Si on a deja affiche le message d'attente (WAIT_refresh=1):
	'
	' On ne fait rien, mais on signale que l'on ne veux plus le message d'attente (WAIT_refresh)
	'
	session("WAIT_refresh")="0"
end if
%>

A voir également

Ajouter un commentaire

Commentaires

cs_Baptiste852
Messages postés
2
Date d'inscription
samedi 21 avril 2007
Statut
Membre
Dernière intervention
25 juillet 2008
-
Est-ce possible d'avoir le même code pour PHP ?

Cordialement.
juju 92
Messages postés
4
Date d'inscription
jeudi 24 mai 2007
Statut
Membre
Dernière intervention
24 mai 2007
-
Bonjour,

Désolé d'apporter une touche négative à ce concert de louanges (car c'est assez pratique) mais je souhaite vous mettre en garde parce que j'ai passé une journée à résoudre un pb qui venait de l'inclusion du fichier wait.asp....alors si ça peut servir à d'autres pour résoudre le problème.

Mon site (ASP) récupère en POST différentes valeur de formulaire afin de les insérer dans une base de données(classique quoi). Certaines sont de type texte et peuvent contenir des simples quotes. Le traitement classique est de récupérer la valeur avec Request.Form et par exemple de doubler les simples quotes avant insertion en base.

Pour une raison obscure(plus maintenant), l'insertion du fichier wait.asp, me retourne des valeur de champ text incomplètes tronquées avant la simple quote...et là pour trouver, j'aime mieux vous dire que je me suis tellemment arraché de cheveux que Barthez n'a qu'à bien se tenir.

En fait je pense que lorsque les paramètres sont recréés dans wait.asp, la partie de champs situé après les simples quote passent à la trape. J'ai pas eu vraiment le temps de m'attarder sur le problème, un jour viendra....

Bien sûr j'effectue une modification des simples quotes côté client (javascript), mais en cas de désactivation Javascript .....
chalet_a_biot
Messages postés
1
Date d'inscription
mercredi 9 mai 2007
Statut
Membre
Dernière intervention
9 mai 2007
-
Bonjour,

Je souhaitais utiliser ce code, à partir de pages PHP.
J'ai fais un test cela ne fonctionne pas.

Est-ce que vous avez une astuce ?
Ou est-ce que vous avez une autre solution ?

Merci d'avance.
cs_Chrigou
Messages postés
30
Date d'inscription
lundi 10 février 2003
Statut
Membre
Dernière intervention
27 juin 2008
-
Effectivement, je confirme que sous Firefox ça affiche una page blanche. J'ai fait une petite modif et ça à l'air de fonctionner maintenant. Il faut remplacer la partie HTML par celle-ci:
(en fait j'ai mis l'appel du formulaire dans la balise BODY)

<html>
<head>
<title>Please Wait...</title>
</head>

<TABLE BORDER= 0 CELLPADDING=0 CELLSPACING=1 Class="Table" width="250" height="1">
----, Chargement en cours </td>
----
Veuillez patienter...

</td>
</tr>
</TABLE>


<form name ="WAIT_go" method="post" action="http://<%=request.servervariables("SERVER_NAME")%><%=Request.ServerVariables("PATH_INFO")%><%if Request.ServerVariables("QUERY_STRING") <>"" then%>?<%=Request.ServerVariables("QUERY_STRING")%><%end if%>">
<%
For Each item In Request.Form
Response.Write ""
Next %>
</form>



</html>
Boreux
Messages postés
45
Date d'inscription
jeudi 31 juillet 2003
Statut
Membre
Dernière intervention
29 novembre 2010
-
Sorry, je ne développe que sous IE
(je n'y ai pas d'action, mais je développe en intranet, dans ma société, qui ne supporte QUE IE)

Je fais dont part de mes idées de temps en temps, reste à corriger pour les autres browser

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.