webForumDet fria alternativet

timerfunktion med text

ASP

2 svar · 272 visningar · startad av saw

Medlem sedan mars 20011 880 inlägg
Frågan#1

Vad jag försöker med är, när en epost har skickats via ett ASP-interface
så skall det vara en viss fördröjning ca 5 sek, då en text skall visas, därefter
en redirect till en spesiell sida.
Så här försöker jag.

Sub TLdelaySec(DelaySeconds,sText)
response.write sText
  SecCount = 0
  Sec2 = 0
  While SecCount < DelaySeconds + 1
    Sec1 = Second(Time())
    If Sec1 <> Sec2 Then
      Sec2 = Second(Time())
      SecCount = SecCount + 1
    End If
  Wend
End Sub
'sen i själva koden
<% Response.buffer = True %>
'en massa kod
if not msg.Send("smtp.dpgruppen.se" ) 
Response.write "<pre>" & msg.log & "</pre>"
else
response.Flush

CALL TLdelaySec(5,"<P><BR><P><CENTER>Tack, nu skickas eposten till "
 & request("Avdelning") & "</CENTER>")
response.redirect "main.asp"
end if

Och jag får naturligtvis ett error(likt mig)

Response object error 'ASP 0156 : 80004005' 
Header Error 
/DP_filer/Kontakt.ASP, line 49 
The HTTP headers are already written to the client browser. Any HTTP 
header modifications must be made before writing page content.

Finns det något sätt att komma förbi detta?
Jag vet att om jag tar bort "response.Flush", då har jag inga error, men ingen
text. Låter jag den står där, så får jag text, men på köpet ett error.
Snack om åsnan mellan två höstackar... :q

Medlem sedan juni 200032 967 inlägg
#2

Den enda lösningen är att göra detta på klienten, antingen med ett javascript (lämpligt sökord i javascriptforumet: setTimeout), eller med en meta-tagg i HTML.

Mvh

Medlem sedan mars 20011 880 inlägg
#3

Jo du hadde så rätt, en META tag var vad som behövdes.

257 ms totalt · 4 externa anrop · v20260731065814-full.86ec41c2
129 ms — deklarationer (db)
0 ms — hämta statistik (cache)
126 ms — hämta tråd, inlägg och bilagor (db)
123 ms — ändringar (db)