MySQL beginner |
|
Beste leden,
Ik ben op het moment bezig met een kleine UI pagina voor een alternatief voor mijn cronjob.
Gister had ik een paar problemen maar met hulp van Erik kwam ik er al snel achter dat ik ob_end_flush() en flush() moest gebruiken om ondertussen de voortgang te kunnen tonen op het scherm.
Nu is het echter zo dat ik me te bedenken kom of de methode die ik handhaaf wel de juiste is en hoe ik het werkend zou kunnen maken.
Ikzelf programmeer altijd in OO en gebruik dan ook classes voor mijn code.
In de class voor deze specifieke module zit een array met ongeveerd 30 landen.
Uit elk land zal hij een XML moeten ophalen en verwerken.
Nu is mijn vraag, hoe toon ik de voortgang van deze items.
Op het moment heb ik het in de cronjob, maar dat is zo goed als per onderdeel, niet per land.
Is het mogelijk om simpel weg een paar values te maken in de klasse:
$part1Completed = false;
$part1Progress = 0;
$part2Completed = false;
$part2Progress = 0;
$part1Completed = false; $part1Progress = 0; $part2Completed = false; $part2Progress = 0;
En dan gewoon met getters de waardes opvraag?
public function getProgressPart1() {
return $this->part1Progress;
}
public function getProgressPart1() { return $this->part1Progress; }
En omdat de waarde blijft veranderen, wordt het dan aangeraden om in de algemene UI code te doen van:
foreach ( each part ) {
$inProgress = false;
while ($myClass->getProgressPart1() < 100) {
if (!$inProgress) {
$myClass->getData();
}
echo $myClass->getProgressPart1();
ob_end_flush();
flush();
}
}
$inProgress = false; while ($myClass->getProgressPart1() < 100) { if (!$inProgress) { $myClass->getData(); } echo $myClass->getProgressPart1(); } }
Raden jullie mij aan het op deze manier te doen?
Daarnaast lijkt de ob_end_flush / flush niet altijd goed te werken en blijft de pagina alsnog maar laden inplaats van de output tonen.
Graag hoor ik jullie mening.
Mvgr,
Lars
|