Bekijk Volledige Versie : Wat gebeurd er als browser vroegtijdig afgebroken word???
Mike Obiku
11/05/04, 07:25
Stel, je hebt een phpscript dat een database opent en hier redelijk veel
info uit moet op gaan halen. Aan het eind van het script wordt de database
weer gesloten met mysql_close(). Als de gebruiker nu tijdens het uitvoeren
van het script de browser afsluit, of naar een andere pagina surft, wat
gebeurd er dan met mijn script. Stopt deze dan direct, waardoor de database
niet wordt afgesloten. Of gaat deze serverside gewoon door tot het script
gesloten is????
--
# Reply at the bottom and on a empty line, not behind any >>> sign #
I only read mail sent to the adres at the bottom.
Mike@familie-smit_punt_nl (vervang _punt_ voor een .)
John Bokma
11/05/04, 07:35
Mike Obiku wrote:
> Stel, je hebt een phpscript dat een database opent en hier redelijk veel
> info uit moet op gaan halen. Aan het eind van het script wordt de database
> weer gesloten met mysql_close(). Als de gebruiker nu tijdens het uitvoeren
> van het script de browser afsluit, of naar een andere pagina surft, wat
> gebeurd er dan met mijn script. Stopt deze dan direct, waardoor de database
> niet wordt afgesloten. Of gaat deze serverside gewoon door tot het script
> gesloten is????
Laatste. Er zit vast ook een time out op je mysql connectie. Overigens,
het klinkt alsof er iets te optimaliseren valt. Meestal als je redelijk
veel info uit een database moet halen, doe je iets niet goed...
--
John MexIT: http://johnbokma.com/mexit/
personal page: http://johnbokma.com/
Experienced Perl programmer available: http://castleamber.com/
Jaap-Andre de Hoop
11/05/04, 11:35
In article <40a0654e$0$192$58c7af7e@news.kabelfoon.nl>, John Bokma <postmaster@castleamber.com> wrote:
>
>Laatste. Er zit vast ook een time out op je mysql connectie. Overigens,
>het klinkt alsof er iets te optimaliseren valt. Meestal als je redelijk
>veel info uit een database moet halen, doe je iets niet goed...
>
of je gebruikt veel (grote) tabellen om tot het resultaat te komen en moet
er een grote tijdelijke tabel gemaakt worden
Jaap-Andre, spreekt uit ervaring en is blij met zijn mmx ontwikkelserver, want
dan merk je het ook als je aan het ontwikkelen bent...
Warden Dave
11/05/04, 12:45
"Mike Obiku" <Mike@NoSpam.nl> wrote:
> Stel, je hebt een phpscript dat een database opent en hier redelijk veel
> info uit moet op gaan halen. Aan het eind van het script wordt de database
> weer gesloten met mysql_close(). Als de gebruiker nu tijdens het uitvoeren
> van het script de browser afsluit, of naar een andere pagina surft, wat
> gebeurd er dan met mijn script. Stopt deze dan direct, waardoor de database
> niet wordt afgesloten. Of gaat deze serverside gewoon door tot het script
> gesloten is????
Lees (ook ) hoofdstuk 20, "Connection handling", van de handleiding:
http://www.php.net/manual/en/features.connection-handling.php
("...The default behaviour is however for your script to be aborted when
the remote client disconnects.")
WD
Mike Obiku
11/05/04, 20:25
John Bokma wrote:
>
> Laatste. Er zit vast ook een time out op je mysql connectie.
> Overigens, het klinkt alsof er iets te optimaliseren valt. Meestal
> als je redelijk veel info uit een database moet halen, doe je iets
> niet goed...
Waar het feitelijk omgaat is dat ik een fotoforum op een server heb draaien.
Dat is een oude pentium MMX 200 MHz, dus niet erg snel meer. Er kunnen
foto's naar hetforum geupload worden. Een script zorgt er voor dat er van
iedere foto een miniatuur fototje gemaakt word, een iets grotere foto en
natuurlijk het originele formaat. Ik als webmaster kan direct meerdere
foto's tegelijk sturen en die als een blok laten bewerken. Maar hoe meer
foto's hoe langer het verwerlen gaat duren. Soms wel to 10 minuten. Ja ik
heb in de PHP.ini de tijd naar ruim 10 minuten gezet. Nu heb ik wel de tijd,
maar als een andere gebruiker een foto naar het forum verstuurd en deze vind
2 to 3 minuten wachten te lang (uiteraard), en sluit de browser dan af, is
dan alles voor niets geweest???
--
# Reply at the bottom and on a empty line, not behind any >>> sign #
I only read mail sent to the adres at the bottom.
Mike@familie-smit_punt_nl (vervang _punt_ voor een .)
John Bokma
11/05/04, 22:15
Mike Obiku wrote:
> John Bokma wrote:
>
>
>>Laatste. Er zit vast ook een time out op je mysql connectie.
>>Overigens, het klinkt alsof er iets te optimaliseren valt. Meestal
>>als je redelijk veel info uit een database moet halen, doe je iets
>>niet goed...
>
> Waar het feitelijk omgaat is dat ik een fotoforum op een server heb draaien.
> Dat is een oude pentium MMX 200 MHz, dus niet erg snel meer.
Ik denk dat je zelfs gratis een snellere machine kan vinden.
> Er kunnen
> foto's naar hetforum geupload worden. Een script zorgt er voor dat er van
> iedere foto een miniatuur fototje gemaakt word, een iets grotere foto en
Die grotere foto heeft altijd een mindere kwaliteit, dus waarom?
> natuurlijk het originele formaat.
Niets let je om een cron job te laten draaien, die later, het de twee
versies maakt. Wellicht nog slimmer:
je weergave script kijkt in de database: is de kleine versie er?
nee -> maak het aan, zet in de database, en geef terug aan de bezoeker.
Idem voor de grote versie.
Zo maak je de andere versies on demand aan, en gebruik je de database
als cache. Als niemand de grotere versie bekijkt, is die niet
aangemaakt. Bespaar je sowieso database ruimte, en wellicht
processorkracht. En de load wordt wellicht ook beter verdeeld.
> Ik als webmaster kan direct meerdere
> foto's tegelijk sturen en die als een blok laten bewerken. Maar hoe meer
> foto's hoe langer het verwerlen gaat duren.
Waarom gebruik je zelf niet een andere methode? Als je een snellere
machine hebt zou je kunnen kiezen om een script te maken (Perl), die
gewoon een hele directory automatisch upload naar je 200MMX (dus die
gewoon voor elk plaatje, de upload URL aanroept, of een aantal), en
wellicht kan je op die andere computer het voorwerk (de 2 andere
plaatjes) al aanmaken.
> Soms wel to 10 minuten. Ja ik
> heb in de PHP.ini de tijd naar ruim 10 minuten gezet. Nu heb ik wel de tijd,
Met als mogelijk nadeel dat je uit je database connecties kan lopen.
> maar als een andere gebruiker een foto naar het forum verstuurd en deze vind
> 2 to 3 minuten wachten te lang (uiteraard), en sluit de browser dan af, is
> dan alles voor niets geweest???
Hangt erg van je script af. Kan zijn dat het origineel in de database
zit, en de andere twee niet. Kan je oplossen met transacties, maar.. ik
denk dat on demand zoals boven mooier is.
--
John MexIT: http://johnbokma.com/mexit/
personal page: http://johnbokma.com/
Experienced Perl programmer available: http://castleamber.com/