php.de

Zurück   php.de > Webentwicklung > PHP Einsteiger > PHP Tipps 2006

 
 
LinkBack Themen-Optionen Thema bewerten
Alt 09.01.2006, 23:04  
Gast
 
Beiträge: n/a
Standard ProgressClass zeigt Fortschritte in foreach nicht a

PHP-Code:
require('ProgressClass.php');
$progress=new ProgressClass();
$array = array(1,2,3,4,5,6,7,8,9);
$i=0;
foreach (
$array as $var)
{
    
$progress->make();
    echo 
"hello - $var
"
;
    
$progress->setPerX($i,7);
    
$i++;
}
$progress->hide(); 
Dieses Script zeigt nach Ablauf direkt den zu 100% gef�llten Balken an.
Weder werden in den genannten Schritten zwiwschendurch die Prozentzahlen aktualisiert,
noch wird der Balken nach Ablauf wieder ausgeblendet (was mit hide doch gehen sollte).

Hat jemand aehnliche Erfahrungen gemacht und evtl. Loesungen? Ich vermute, dass es mit der foreach zu tun hat.
Einfache for-Schleifen funktionieren dagegen, wie ja auch in einem Beispiel von edv-internet
(http://www.edv-internet.de/kostenlos...ss/index.shtml)
 
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 09.01.2006, 23:12  
Gast
 
Beiträge: n/a
Standard

> funktioniert nur ab IE 5.x oder Netscape 6.x

Na wunderbar

EDIT:
http://www.edv-internet.de/kostenlos.../anleitung.htm
 
Alt 09.01.2006, 23:15  
Gast
 
Beiträge: n/a
Standard

Wie lange meinst Du, braucht Dein Skript zur Abarbeitung?
Wie lange soll also 10,20, X Prozent dastehen?
 
Alt 09.01.2006, 23:27  
Gast
 
Beiträge: n/a
Standard

@ CIX88: ist mir bekannt, aber danke.

@ Bruchpilot:
ja schon klar... ich sehs eins, das Beispiel war nicht das geschickteste Ich wollte nur nicht mein viel zu langes eigentliches Script posten.
Werde dann morgen nochmal neu formulieren :-/ gehe besser erstmal schlafen...
 
Alt 10.01.2006, 09:35  
Gast
 
Beiträge: n/a
Standard Re: ProgressClass zeigt Fortschritte in foreach nicht an

so, neuer Versuch

So ungefähr sieht mein Script aus, es wird also einiges mehr gemacht als nur ein Array durchgegangen
Der tolle Balken wird zwar eingeblendet, startet mit 0% und verschwindet nach Abarbeitung des Scripts
wieder, die in der foreach-Schleife vorgenommenen Änderungen des Fortschritts werden jedoch nicht angezeigt.

Woran liegt das !?!?!?

PHP-Code:
require('ProgressClass.php');
$progress=new ProgressClass();
$progress->make();
$count 0;
$all 100;

foreach (
$array as $var)
{
    [ 
mache einige SQL-Abfragen und HTML-Ausgaben ]

    
$progress->setPerX($count$all);
    
$count++;

}

$progress->hide(); 
 
Alt 10.01.2006, 20:15  
Gast
 
Beiträge: n/a
Standard

PHP-Code:
require('ProgressClass.php');
error_log(date('H:i:s d.m.Y :') . " new ProgressClass()"3"progress.log");
$progress=new ProgressClass();
$progress->make();
$count 0;
$all 100;

foreach (
$array as $var)
{
    
// [ mache einige SQL-Abfragen und HTML-Ausgaben ]
    
error_log(date('H:i:s d.m.Y :') . " rufe setPerX($count, $all) auf"3"progress.log");
    
$progress->setPerX($count$all);
    
ob_flush(); flush();
    
$count++;
}

error_log(date('H:i:s d.m.Y :') . " hide()"3"progress.log");
$progress->hide(); 
progress.log sieht nach dem Aufruf des Skripts wie erwartet aus?
Sind die HTML Ausgaben pro Schleifendurchlauf in einem Blockelement wie bspw

oder <div> eingeschlossen?
 
Alt 11.01.2006, 09:57  
Gast
 
Beiträge: n/a
Standard

geil

Jetzt funktioniert es genau wie es soll!
Ohne das ob_flush() wird der Balken wohl nicht angezeigt... (obwohl das weder in der Doku noch in den Beispielen von ProgressClass steht).
Die flush() Funktion in obigem Bsp. scheint ueberfluessig zu sein, nur mit ob_flush gehts auch!?


Danke !!

PS:
Dementsprechend sieht jetzt auch die progress.log gut aus.
HTML

oder <div> habe ich nicht verwendet
 
Alt 11.01.2006, 13:22  
Gast
 
Beiträge: n/a
Standard

Dann ist irgendein Ausgabepuffer (vermutlich gzlib) aktiv.
 
Alt 12.01.2006, 10:29  
Gast
 
Beiträge: n/a
Standard

Aha!? Und ist gzlib der "normale" PHP-output-buffer?

Der scheint zumindest aktiv zu sein, und wenn ich den mit ob_end_flush() vor Ausführung des Script deaktiviere, läuft das Script (incl. ProgressClass Balken) auch ohne die flush() und ob_flush()!

Wenn ich so einen Ausgabe-Puffer verwende habe ich offenbar mehr Kontrolle darüber, wann etwas an die Client gesendet wird!? Was sind denn die Vor- und Nachteile? Soll ich den Puffer vor dem Script deaktvieren? Oder lieber anlassen und immer flushen?
 
Alt 13.01.2006, 00:11  
Gast
 
Beiträge: n/a
Standard

Zitat:
Was sind denn die Vor- und Nachteile?
Vorteil: es ensteht weniger net-traffic, da die Daten komprimiert werden.
Nachteil: Hast Du ja selbst gesehen.
 
 


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Eindimensionales Array ohne index per foreach erstellen phpbeginner PHP Tipps 2008 4 10.03.2008 14:18
foreach equivalent aber mit Datenmanipulation Matt PHP Tipps 2008 2 26.02.2008 16:47
Lambda-Funktion und array_map/_filter gegen foreach KingCrunch PHP Tipps 2007 5 29.04.2007 10:28
ProgressClass 1.0 Fehler in IE7 madSoul HTML, Usability und Barrierefreiheit 3 15.03.2007 13:17
foreach verändert die werte des arrays das durchlaufen wird Crypi PHP Tipps 2007 5 10.01.2007 08:24
foreach mit zwei übergebenen Arrays ? [erledigt] horstenpeter PHP Tipps 2006 1 03.09.2006 16:47
foreach -> key snatch-ic PHP Tipps 2006 3 18.08.2006 11:58
foreach() wird einmal zu oft durchlaufen Dilandau PHP Tipps 2006 15 07.07.2006 17:14
foreach geht aber abfrage nicht... GELight PHP Tipps 2006 8 01.03.2006 23:53
$_FILES mit foreach() PHP Tipps 2005-2 5 20.10.2005 10:27
foreach: Fehler beim ersten Aufruf mristau2k5 PHP Tipps 2005-2 3 15.08.2005 23:14
foreach probleme PHP Tipps 2005 7 26.04.2005 17:54
foreach: Übergabe by reference Stümper PHP Tipps 2005 2 15.02.2005 15:35
foreach PHP Tipps 2004-2 18 10.12.2004 05:42
foreach problem mAy^daY PHP Tipps 2004 3 02.06.2004 20:29

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
progress_class, php progressclass

Alle Zeitangaben in WEZ +2. Es ist jetzt 11:13 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum

Creative Commons License
Dieser Inhalt ist unter einer Creative Commons-Lizenz lizenziert.