[D7+Isapi] Faire une page HTML de progression de traitement
Salut à tous,
Sur un site web fait avec une DLL Isapi, et j'ai une procédure d'envoi de mail directement depuis le site. Et comme le traitement peut être relativement long, j'aimerais afficher une page qui se rafraichit au fur et à mesure de l'avancement des envois.
En résumé, voici la procédure d'envoi :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
|
procedure TWBM.WBMenvoiAction(Sender: TObject; Request: TWebRequest;
Response: TWebResponse; var Handled: Boolean);
begin
// On procéde à un envoi de message pour chaque ligne du fichier CSV
for lig:=0 to length(RecLigne)-1 do
begin
// Création de la page HTML avec le compteur de progression
Genere_Page_Wait('Envoi des mails en cours : '+IntToStr(lig+1)+' / '+IntToStr(length(RecLigne)),True);
// Envoi du message
Envoi_Mail;
end;
end; |
et voici le code de la page wait.html qui est généré par la DLL
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
|
<HTML>
<HEAD>
<META HTTP-EQUIV="CACHE-CONTROL" CONTENT="NO-CACHE">
</HEAD>
<BODY>
<META HTTP-EQUIV="REFRESH" CONTENT="1; URL=http://fcsm.devoci.fr/wait.html">
<font face="arial">
<CENTER>
<BR><BR>
Envoi des mails en cours : 13 / 84
</CENTER>
</font>
</BODY>
</HTML> |
Pour afficher cette page Wait, j'ai essayé tout un tas de formules différentes, et aucune ne fonctionne proprement.
J'ai essayé tout ça :
Code:
1 2 3
|
response.SendResponse;
response.SendRedirect(VGL_Domaine+'/wait.html'); |
Code:
1 2
|
Request.WriteString('<META HTTP-EQUIV="refresh" CONTENT="0; URL='+VGL_Domaine+'/wait.html">'); |
Code:
1 2
|
response.Content:=VGL_Domaine+'/wait.html'; |
Code:
1 2
|
Request.WriteString('Envoi des mails en cours : '+IntToStr(lig+1)+' / '+IntToStr(length(RecLigne))+'<BR>'); |
avant la boucle for, et dans la boucle for
J'ai même essayé de passer desTstrings dans des Streams.
La seule syntaxe qui fonctionne à peu près, c'est
Code:
1 2
|
response.SendRedirect(VGL_Domaine+'/wait.html'); |
avant la boucle for
Mais ce qui s'affiche au lancement, c'est
Code:
1 2 3
| HTTP/1.1 302 Object Moved Connection: close Date: Thu, 21 Aug 2008 09:52:38 GMT Content-Length: 160 Content-Type: text/html Location: http://fcsm.devoci.fr/wait.html Server: Microsoft-IIS/6.0 X-Powered-By: ASP.NET X-Powered-By: ASP.NET
Objet déplacé
Ce document peut être consulté ici |
Ce qui d'une part est trés moche, et d'autre part oblige l'utilisateur à cliquer sur le lien pour voir le compteur s'afficher et se rafraichir tout seul.
Bref, je cherche un moyen propre d'afficher une page de progression pendant un traitement long coté serveur.
Merci pour voter aide.
Fred