Avatar billede -thomas- Nybegynder
06. januar 2004 - 11:26 Der er 19 kommentarer og
1 løsning

Browser timeout

Jeg har et script, som tager ret lang tid at udføre.
Jeg har derfor sat Server.Scripttimeout ret højt for at serveren ikke timer ud.
Når jeg klikker på knappen, som skal udføre scriptet står browseren og venter på svar fra serveren - efter et stykke tid vises "Siden kunne ikke vises" ell. lign. Scriptet bliver udført fint på serveren, men siden som skal vises bagefter, bliver ikke vist, da browseren timer ud.

Hvordan løses dette? Vil det evt. hjælpe med Response.Flush?
Avatar billede keysersoze Ekspert
06. januar 2004 - 11:31 #1
hvordan ser din kode ud?
Avatar billede -thomas- Nybegynder
06. januar 2004 - 11:47 #2
Den er ret lang, men i forkortet form ser den sådan ud:

Do While Not rs.Eof
    On Error Resume Next
   
    jmail.HTMLBody = strContent
    jmail.AddRecipient rs("email"), rs("name")

    If Not jmail.Send("mail.jirty.dk" ) Then
        strError = jmail.log
    End If

    jmail.Clearrecipients

    rs.Movenext
Loop

Den sender et par tusinde mails og det tager ca. 10 min, men browseren når at time ud inden.

Kunne man evt. sætte dette ind i løkken:

Response.Write "Mail sendt<br>"
Response.Flush
Avatar billede -thomas- Nybegynder
06. januar 2004 - 12:19 #3
Nogen der kan hjælpe??
Avatar billede keysersoze Ekspert
06. januar 2004 - 13:15 #4
du siger at siden kommer op med "Siden kunne ikke vises" hvis du sætter scripttimeout ind - og den fejlside kommer vel ikke først efter 10 minutter?
Avatar billede -thomas- Nybegynder
06. januar 2004 - 13:22 #5
Nej, jeg tror der går et par minutter, men alle mails bliver sendt.

Når jeg klikker på knappen, står browseren og tænker og venter på svar fra serveren. Men da den ikke får svar inden for et par minutter viser den en fejlmeddelelse i stedet.
Avatar billede keysersoze Ekspert
06. januar 2004 - 14:39 #6
hvad har du sat timeout til?
Avatar billede -thomas- Nybegynder
06. januar 2004 - 15:18 #7
Server.ScriptTimeout = 3600

Men det er jo ikke den der timer ud - alle mails bliver sendt. Det er browseren der bliver utålmodig, fordi der går 10 minutter før den fra svar fra serveren på efterspørgsel.
Avatar billede keysersoze Ekspert
06. januar 2004 - 15:43 #8
hvor mange mails drejer det sig om?
Avatar billede -thomas- Nybegynder
06. januar 2004 - 15:49 #9
Ca. 2.500
Avatar billede keysersoze Ekspert
06. januar 2004 - 16:01 #10
det _burde_ ikke tage så lang tid at sende 2500 mails... hvis ikke du allerede har det, så prøv følgende;

funktioner -> internetindstillinger -> avanceret -> fjern kryds i "vis meddelelse om uskadelige http-fejl"

og se om fejlen reelt er timeout eller det måske er noget andet. Endelig kan det jo være en grænse på 10 minutter fra webhotellets side hvis du ikke kører det lokalt
Avatar billede -thomas- Nybegynder
07. januar 2004 - 11:43 #11
Jeg har lige prøvet at sende 2500 mails ud, og der var ingen problemer - det tog ca. 10 min.
Jeg havde sat Response.Flush for hver 100 mails - kan det være det, der har hjulpet? Jeg har også fjernet "vis meddelelse om uskadelige http-fejl".
Avatar billede keysersoze Ekspert
07. januar 2004 - 12:13 #12
det kan jeg ikke forestille mig - flush gør jo teoretisk set bare scriptet endnu tungere at køre.
Avatar billede -thomas- Nybegynder
07. januar 2004 - 12:23 #13
Ja, det ville jeg også mene - men sender serveren noget til browseren, når den udfører flush-kommandoen?
Avatar billede keysersoze Ekspert
07. januar 2004 - 12:33 #14
flush sender bufferet indhold direkte til klienten - altså kommer med lidt indhold ad gangen efterhånden som det er udført
Avatar billede -thomas- Nybegynder
07. januar 2004 - 12:35 #15
Er det så ikke muligt, at det også sørger for, at browseren ikke timer ud?
Avatar billede keysersoze Ekspert
07. januar 2004 - 12:51 #16
jeg ved faktisk ikke om browseren også har noget at sige - måske!

Du kan evt prøve at lave en form for counter

counter = 0
'loop start
response.write counter & "<br>"
counter = counter + 1
'loop slut

for på den måde at se hvad der reelt sker...
Avatar billede -thomas- Nybegynder
07. januar 2004 - 13:07 #17
Jeg har counter på og den tæller fint op. Koden lige efter løkken bliver også udført, så den timer ikke ud på serveren.
Avatar billede keysersoze Ekspert
07. januar 2004 - 13:11 #18
så prøv for sjov skyld at loop de resultat igennem 2 gange - altså 5000 mails - og se hvad der så sker :)
Avatar billede -thomas- Nybegynder
08. januar 2004 - 08:40 #19
Ok, jeg prøver at lege lidt med det og ser, om jeg kan få den til at give fejl igen. Tak for hjælpen - lægger du et svar?
Avatar billede keysersoze Ekspert
08. januar 2004 - 11:20 #20
svar
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester