Progress meter
Hiermee kan je van een langdurend script de voortgang monitoren.
jQuery is vereist, ik ben niet zo goed in javascript.
EDIT: Nu ook een percentage en mooie bar
EDIT 2: Bijna alle JS staat nu in een JS bestand en kan dus gecached worden. Let wel op om Progress::script() vóór het JS bestand uit te voeren.
De werking is als volgt:
De hoofdpagina roept de action aan, deze slaat zijn voortgang op in de sessie.
Ook roept de hoofdpagina om de zo veel tijd (in te stellen) de leespagina op die de voortgang uit de sessie leest en json encoded weergeeft.
De hoofdpagina geeft dat dan weer.
Op de action pagina kan je het volgende aanroepen:
2
3
4
5
6
7
8
9
10
11
12
13
14
// Creëer object met een namespace (daarmee kan je verschillende monitors onderscheiden)
$progress = new Progress($namespace);
// Reset eerst de sessie
$progress->reset();
// Stel het maximum in
$progress->setMax(100);
// Update de progress
$progress->update(10);
// Trigger een error, error code is optioneel
$progress->error("Error code", 999);
// Geef aan dat de actie voltooid is
$progess->done();
?>
De read pagina is standaard, zie daarvoor de code.
De index pagina
2
3
4
5
6
7
8
9
10
11
12
13
14
15
// Namespace is net besproken
$progress = new Progress('namespace');
// Stel de url (mag relatief) van de actie in
->setActionUrl('action.php')
// Optioneel, stel de post vars in voor de actie
->setActionPostData(array('key'=>'value'))
// Stel de url van de read pagina in
->setReadUrl('read.php')
// Stel de interval van de weergave in
->setInterval(0.5);
// In de head geeft je het script weer met
echo $progress->script();
?>
In script.js kan je de acties van update, done en error instellen. Bij error heb je beschikking over data.error.text voor de errortext en data.error.code voor de errorcode, als deze bij Progress::error() is opgegeven.
Alle commentaar is van harte welkom.
Voorbeeld: http://pimwebdesign.nl/progress/index.php
Gesponsorde koppelingen
PHP script bestanden
Er zijn 15 reacties op 'Progress meter'
Om te reageren heb je een account nodig en je moet ingelogd zijn.
PHP hulp
0 seconden vanaf nu