08. februar 2005 - 12:13
Der er
37 kommentarer og 1 løsning
problemer med response.flush
Jeg er ved at lave en nyhedsmailfunktion, hvor jeg skal kunne sende 5000 - 10.000 mails ud. Mens funktionen kører vil jeg gerne have at der bliver skrevet på skærmen hvor mange mails der er sendt, men jeg kan ikke få det til at virke. Min funktioner starter med: Response.Buffer = True og længere nede står der inde i mail mail looper: if 0 = Err then Count = Count + 1 Response.Write("Mailen er sendt til: "&Count) Response.Flush End if
Annonceindlæg tema
Offentlig digitalisering
Fra effektivisering til digital suverænitet. Hvordan skaber det offentlige en digital fremtid med AI, sikkerhed og kontrol i centrum?
08. februar 2005 - 12:13
#1
der kommer bare ikke noget ud på skærmen før løkken er helt færdig
08. februar 2005 - 14:43
#2
Response.Buffer skal være False.
08. februar 2005 - 14:44
#3
..tror jeg :-) Ved True, venter den til hele siden er genereret, inden den udskriver data.
08. februar 2005 - 14:51
#4
Prøv evt med en kombination af ASP, HTML og java script: <div id="taeller"> <script type="text/JavaScript"> function tael(num) { document.getElementById("taeller").innerHTML = "Antal mail sendt: " + num; } </script> Så skulle du gerne bruge: Response.Write "<script type='text/JavaScript'>tael(" & count & ");</script>" DIV og function skal stå før count-delen.
08. februar 2005 - 14:53
#5
Skulle ha' været: <div id="taeller"></div> (manglede "</div>")
08. februar 2005 - 15:51
#6
Jeg prøvede lige med Buffer = False, så får jeg denne fejl: Mailen er sendt til: 1 Response object error 'ASP 0159 : 80004005' Buffering Off /sendMail.asp, line 131 Buffering must be on.
08. februar 2005 - 15:56
#7
Nu har jeg fået den til at skrive ud efter hånden som den får mailsne sendt, men de første bliver sendt meget hurtigt, men efter den har sendt 20 mails, går det rigtig langsomt. Hvad kan det skyldes.
08. februar 2005 - 16:04
#8
Det er muligvis din mail server (hos host'en) der ikke kan følge med. Når det er at man skal maile til mange personer, er det bedst at lave noget paging.. dvs, at man mailer i "bidder" i stedet for alle på éen gang, da dette kan fejle. Jeg kan desværre ikke hjælpe med paging koden.. du kan muligvis finde noget ved at søge her på Eksperten.. det har nemlig være oppe og vende et par gange.. Hvis du har flere spm, kan du naturligvis stadig skrive i dette spm.. hvis jeg ikke kan svare, kan det være at en anden kan..
08. februar 2005 - 16:05
#9
så fik jeg klaret det med at den gik i stå ved at lukke objektet og åbne det igen efter den har sendt 20 mails
08. februar 2005 - 16:14
#10
dit eksempel fra kl. 14:51:29 er ret smart, men jeg kan ikke helt få det til at virke. Lige før min løkke der sender mails ud, har jeg følgende: response.write("<div id=taeller></div>" &vbCrlf) response.write("<script type=text/JavaScript>"&vbCrlf) response.write("function tael(num)"&vbCrlf) response.write("{"&vbCrlf) response.write("document.getElementById('taeller').innerHTML = 'Antal mail sendt: ' + num;"&vbCrlf) response.write("}"&vbCrlf) response.write("</script>"&vbCrlf) det skal sikre at javascriptet er tilgængeligt når optællingen sker. I løkken har jeg så følgende: mailCount = mailCount + 1 Response.Write "<script type='text/JavaScript'>tael(" & mailCount & ");</script>" Response.Flush jeg får en javafejl der hedder: document.getElementById(...) is null or not an object
Slettet bruger
08. februar 2005 - 16:18
#11
nu er jeg ikke asp ekspert men fejlen burde ligge her: <div id=taeller></div> skal være: <div id="taeller"></div>
08. februar 2005 - 16:19
#12
Det er kun "tael(...)"-js delen der skal stå i loopen.. dvs: <div...> <script ... function tael(... </script> <% start loop her Response.Write "<script type='text/JavaScript'>tael(" & mailCount & ");</script>" slut loop her %>
08. februar 2005 - 16:21
#13
..ellers oprettes div-elementet hver gang at loopen kører.. og det er ikke godt :-) (det samme med funktionen).. PS: Så vide jeg ved, er det lige meget om man bruger "" når man bruge "id=..".. dvs id="taeller" og id=taeller er begge ok.. Og så er det HTML, ikke ASP :-)
08. februar 2005 - 16:24
#14
sådan er det også nu. Jeg har også lige prøvet at rette til så der kommer " rundt om taeller, så det nu ser således ud: response.write("<div id=""taeller""></div>" &vbCrlf) response.write("<script type=""text/JavaScript"">"&vbCrlf) response.write("function tael(num)"&vbCrlf) response.write("{"&vbCrlf) response.write("document.getElementById(""taeller"").innerHTML = ""Antal mail sendt: "" + num;"&vbCrlf) response.write("}"&vbCrlf) response.write("</script>"&vbCrlf)
08. februar 2005 - 16:27
#15
moejensen> prøv 08/02-2005 16:19:00
08. februar 2005 - 16:30
#16
det er sådan det skulle være sat op: <div...> <script ... function tael(... </script> har hele tiden været uden for løkken
08. februar 2005 - 16:31
#17
Har du stadig problemer?
08. februar 2005 - 16:34
#18
yep, jeg får stadig samme fejl. nu har jeg prøvet at lave lidt om på den for at vøre det lidt mere simpelt. I toppen har jeg nu: response.write("<div id=""taeller""></div>" &vbCrlf) og i løkken har jeg: mailCount = mailCount + 1 Response.Write "<script type='text/JavaScript'>document.getElementById('taeller').innerHTML = 'Antal mail sendt: "&mailCount&"';</script>" Response.Flush
08. februar 2005 - 16:41
#19
det er som om den ikke får lavet tæller diven. Jeg prøvede at tjekke hvad der var af kode når den sender mailsne, men kan kan kun få vist koden for framesettet, også selvom jeg højreklikker og vælger vis kilde i framevinduet.
08. februar 2005 - 16:43
#20
Det eneste der skal skrives igen og igen, er selve kaldet til funktioner + mailcount værdien. Det du har i 08/02-2005 16:34:43 burde også virke. Men du har ikke skrevet om du stadig har problemer.. skriv det venligst hver gang du prøvet noget nyt :-)
08. februar 2005 - 16:45
#21
jeg har stadig probelmert, ellers ville jeg ikke blive ved med at skrive ;-) jeg var bange for at diven ikke kom ud, så jeg prøvede at skrive følgende: response.write("<div id=""taeller""></div>" &vbCrlf) Response.Flush men det gav heller ikke pote :-(
08. februar 2005 - 16:51
#22
Prøv at gøre det i ren HTML, dvs uden response.write..
08. februar 2005 - 16:58
#23
Nu satte jeg den ind således mailCount = mailCount + 1%> <script type="text/JavaScript">document.getElementById('taeller').innerHTML = 'Antal mail sendt:';</script> <%'Response.write("Mail sendt: " &mailCount&" ") Response.Flush Det gav samme fejl.
08. februar 2005 - 17:01
#24
Jeg er gået tilbage ti laspløsningen, og har nu fået koden ud, og den kommer til at se således ud: <div id="taeller"></div> <script type='text/JavaScript'>document.getElementById('taeller').innerHTML = 'Antal mail sendt: 1';</script><script type='text/JavaScript'>document.getElementById('taeller').innerHTML = 'Antal mail sendt: 2';</script><script type='text/JavaScript'>document.getElementById('taeller').innerHTML = 'Antal mail sendt: 3';</script><script type='text/JavaScript'>document.getElementById('taeller').innerHTML = 'Antal mail sendt: 4';</script><script type='text/JavaScript'>document.getElementById('taeller').innerHTML = 'Antal mail sendt: 5';</script><script type='text/JavaScript'>document.getElementById('taeller').innerHTML = 'Antal mail sendt: 6';</script><script type='text/JavaScript'>document.getElementById('taeller').innerHTML = 'Antal mail sendt: 7';</script><script type='text/JavaScript'>document.getElementById('taeller').innerHTML = 'Antal mail sendt: 8';</script><script type='text/JavaScript'>document.getElementById('taeller').innerHTML = 'Antal mail sendt: 9';</script><script type='text/JavaScript'>document.getElementById('taeller').innerHTML = 'Antal mail sendt: 10';</script><script type='text/JavaScript'>document.getElementById('taeller').innerHTML = 'Antal mail sendt: 11';</script><script type='text/JavaScript'>document.getElementById('taeller').innerHTML = 'Antal mail sendt: 12';</script><script type='text/JavaScript'>document.getElementById('taeller').innerHTML = 'Antal mail sendt: 13';</script><script type='text/JavaScript'>document.getElementById('taeller').innerHTML = 'Antal mail sendt: 14';</script><script type='text/JavaScript'>document.getElementById('taeller').innerHTML = 'Antal mail sendt: 15';</script><script type='text/JavaScript'>document.getElementById('taeller').innerHTML = 'Antal mail sendt: 16';</script><script type='text/JavaScript'>document.getElementById('taeller').innerHTML = 'Antal mail sendt: 17';</script><script type='text/JavaScript'>document.getElementById('taeller').innerHTML = 'Antal mail sendt: 18';</script><script type='text/JavaScript'>document.getElementById('taeller').innerHTML = 'Antal mail sendt: 19';</script><script type='text/JavaScript'>document.getElementById('taeller').innerHTML = 'Antal mail sendt: 20';</script><script type='text/JavaScript'>document.getElementById('taeller').innerHTML = 'Antal mail sendt: 21';</script><script type='text/JavaScript'>document.getElementById('taeller').innerHTML = 'Antal mail sendt: 22';</script><script type='text/JavaScript'>document.getElementById('taeller').innerHTML = 'Antal mail sendt: 23';</script><script type='text/JavaScript'>document.getElementById('taeller').innerHTML = 'Antal mail sendt: 24';</script><script type='text/JavaScript'>document.getElementById('taeller').innerHTML = 'Antal mail sendt: 25';</script><script type='text/JavaScript'>document.getElementById('taeller').innerHTML = 'Antal mail sendt: 26';</script><script type='text/JavaScript'>document.getElementById('taeller').innerHTML = 'Antal mail sendt: 27';</script><script type='text/JavaScript'>document.getElementById('taeller').innerHTML = 'Antal mail sendt: 28';</script><script type='text/JavaScript'>document.getElementById('taeller').innerHTML = 'Antal mail sendt: 29';</script><script type='text/JavaScript'>document.getElementById('taeller').innerHTML = 'Antal mail sendt: 30';</script><script type='text/JavaScript'>document.getElementById('taeller').innerHTML = 'Antal mail sendt: 31';</script><script type='text/JavaScript'>document.getElementById('taeller').innerHTML = 'Antal mail sendt: 32';</script><script type='text/JavaScript'>document.getElementById('taeller').innerHTML = 'Antal mail sendt: 33';</script><script type='text/JavaScript'>document.getElementById('taeller').innerHTML = 'Antal mail sendt: 34';</script><script type='text/JavaScript'>document.getElementById('taeller').innerHTML = 'Antal mail sendt: 35';</script><script type='text/JavaScript'>document.getElementById('taeller').innerHTML = 'Antal mail sendt: 36';</script><script type='text/JavaScript'>document.getElementById('taeller').innerHTML = 'Antal mail sendt: 37';</script><script type='text/JavaScript'>document.getElementById('taeller').innerHTML = 'Antal mail sendt: 38';</script><script type='text/JavaScript'>document.getElementById('taeller').innerHTML = 'Antal mail sendt: 39';</script><script type='text/JavaScript'>document.getElementById('taeller').innerHTML = 'Antal mail sendt: 40';</script><script type='text/JavaScript'>document.getElementById('taeller').innerHTML = 'Antal mail sendt: 41';</script><script type='text/JavaScript'>document.getElementById('taeller').innerHTML = 'Antal mail sendt: 42';</script><script type='text/JavaScript'>document.getElementById('taeller').innerHTML = 'Antal mail sendt: 43';</script><script type='text/JavaScript'>document.getElementById('taeller').innerHTML = 'Antal mail sendt: 44';</script><script type='text/JavaScript'>document.getElementById('taeller').innerHTML = 'Antal mail sendt: 45';</script><script type='text/JavaScript'>document.getElementById('taeller').innerHTML = 'Antal mail sendt: 46';</script><script type='text/JavaScript'>document.getElementById('taeller').innerHTML = 'Antal mail sendt: 47';</script><script type='text/JavaScript'>document.getElementById('taeller').innerHTML = 'Antal mail sendt: 48';</script> Kan det have noegt at sige at det kommer til at stå der så mange gange?
08. februar 2005 - 17:02
#25
- Hvad er fejlmeddelelsen? Hvilken linie? Det ser også noget forker ud :-) Det her *burde* virke: <div id="taeller"> <script type="text/JavaScript"> function tael(num) { document.getElementById("taeller").innerHTML = "Antal mail sendt: " + num; } </script> <% start loop ... Response.Write "<script type='text/JavaScript'>tael(" & mailCount & ");</script>" ... slut loop %> Virker det?
08. februar 2005 - 17:03
#26
Det VIL komme til at stå der mange gange :-) Der kommer 1 linie, for hver gang at der sendes 1 mail :-)
08. februar 2005 - 17:04
#27
Nu gjorde jeg det igen (glemte "</div>")! :-) Sådan: <div id="taeller"></div> <script type="text/JavaScript"> function tael(num) { document.getElementById("taeller").innerHTML = "Antal mail sendt: " + num; } </script> <% start loop ... Response.Write "<script type='text/JavaScript'>tael(" & mailCount & ");</script>" ... slut loop %>
08. februar 2005 - 17:07
#28
så prøvede jeg lige det du skrev her til sidst, og det giver stadig fejlen: Line: 7 Char: 5 Error: 'document.getElementById(...)' is null or not an object Code: 0 Jeg får fejlen for hver linie/mail der bliver sendt
08. februar 2005 - 17:09
#29
den kode der komme rud på skærmen ser således ud: 1: 2: <div id="taeller"></div> 3: <script type="text/JavaScript"> 4: function tael(num) 5: { 6: document.getElementById("taeller").innerHTML = "Antal mail sendt: " + num; 7: } 8: </script> 10: 11: <script type='text/JavaScript'>tael(1);</script><script type='text/JavaScript'>tael(2);</script><script type='text/JavaScript'>tael(3);</script><script type='text/JavaScript'>tael(4);</script><script type='text/JavaScript'>tael(5);</script><script type='text/JavaScript'>tael(6);</script><script type='text/JavaScript'>tael(7);</script><script type='text/JavaScript'>tael(8);</script><script type='text/JavaScript'>tael(9);</script><script type='text/JavaScript'>tael(10);</script><script type='text/JavaScript'>tael(11);</script><script type='text/JavaScript'>tael(12);</script><script type='text/JavaScript'>tael(13);</script><script type='text/JavaScript'>tael(14);</script><script type='text/JavaScript'>tael(15);</script><script type='text/JavaScript'>tael(16);</script><script type='text/JavaScript'>tael(17);</script><script type='text/JavaScript'>tael(18);</script><script type='text/JavaScript'>tael(19);</script><script type='text/JavaScript'>tael(20);</script><script type='text/JavaScript'>tael(21);</script><script type='text/JavaScript'>tael(22);</script><script type='text/JavaScript'>tael(23);</script><script type='text/JavaScript'>tael(24);</script><script type='text/JavaScript'>tael(25);</script><script type='text/JavaScript'>tael(26);</script><script type='text/JavaScript'>tael(27);</script><script type='text/JavaScript'>tael(28);</script><script type='text/JavaScript'>tael(29);</script><script type='text/JavaScript'>tael(30);</script><script type='text/JavaScript'>tael(31);</script><script type='text/JavaScript'>tael(32);</script><script type='text/JavaScript'>tael(33);</script><script type='text/JavaScript'>tael(34);</script><script type='text/JavaScript'>tael(35);</script><script type='text/JavaScript'>tael(36);</script><script type='text/JavaScript'>tael(37);</script><script type='text/JavaScript'>tael(38);</script><script type='text/JavaScript'>tael(39);</script><script type='text/JavaScript'>tael(40);</script><script type='text/JavaScript'>tael(41);</script><script type='text/JavaScript'>tael(42);</script><script type='text/JavaScript'>tael(43);</script><script type='text/JavaScript'>tael(44);</script><script type='text/JavaScript'>tael(45);</script><script type='text/JavaScript'>tael(46);</script><script type='text/JavaScript'>tael(47);</script><script type='text/JavaScript'>tael(48);</script>
08. februar 2005 - 17:13
#30
hmm.. underligt.. Her er en lokal test, der virker: <div id="taeller">Antal mail sendt: 0</div> <script type="text/JavaScript"> var c = 0; function tael(num) { document.getElementById("taeller").innerHTML = "Antal mail sendt: " + num; } function laegtil() { c = c + 1; tael(c); } </script> <input type="button" value="Læg 1 til" onclick="laegtil()">
08. februar 2005 - 17:16
#31
Jeg bliver desværre nød til at smutte.. kommer på igen engang i aften.. omkring 21-22 tiden..
08. februar 2005 - 17:22
#32
Nu virker det sku også. Jeg skrev det du havde lavet lidt om, så det blev lidt mere simpelt: i toppen har jeg nu: response.write("<div id=""taeller"">Antal mail sendt: 0</div>" &vbCrlf) Response.Flush i løkken har jeg: Response.Write ("<script type=""text/JavaScript"">document.getElementById(""taeller"").innerHTML = ""Antal mail sendt: "&mailCount&""";</script>") Response.Flush Jeg takker mange gange for tålmodigheden. Du må gerne lave et svar
08. februar 2005 - 17:26
#33
der kom lige et lille tillægsspørgsmål ;-) Nu har jeg jo i toppen af siden ståedne Antal mail sendt: xxxx Kan jeg på nogen måde slette det inden den rigtige status besked kommer frem?, så den på en måde clear siden inden når den er færdig med at sende beskederne.
08. februar 2005 - 21:26
#34
Hvordan mener du? Efter loopen kan du indsætte: Response.Write "<script type=""text/JavaScript"">document.getElementById(""taeller"").innerHTML = """"; document.getElementById(""taeller"").style.display=""none"";</script>" Altså, du sætter indholdet til "" (ingenting).. og '.style.display="none"'-delen skjuler div-boksen. Skriv lige, hvis det ikke er det du mente.. - Svar
08. februar 2005 - 21:33
#35
det er lidt alla det jeg mener, men nu har jeg lavet lidt mere html i toppen, så jeg også har en pogressbar, og den står jo i toppen af siden når alle mails er sendt, så det ville være fedt, hvis man kunne rense siden iden den endelige side kommer frem, altså lige som når man kalder en helt ny side. håber du forstår hvad jeg mener.
08. februar 2005 - 21:40
#36
Så er det vel bare koden (fra 08/02-2005 21:26:10) der skal bruges? Hvis det er mere du vil have fjernet, kan du putte det hele i et div-tag, som du fjerner senere.. Eksempel: <div id="temp"> <div id="taeller"></div> noget mere her </div> så kan du bruge koden, til at skjule ALT hvad der er i temp-boksen: document.getElementById('temp').style.display='none'; Løser det problemet? :-) Hvis ikke, skriv :-) - Takker for points.
08. februar 2005 - 21:49
#37
nå ja, det er da klart. Du er sku skarp til at klare de her problemstillinger.
08. februar 2005 - 21:57
#38
Lidt kan man da altid ;-)
Kurser inden for grundlæggende programmering