php-resource



Zurück   PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr > Entwicklung > PHP Developer Forum
 

Login

 
eingeloggt bleiben
star Jetzt registrieren   star Passwort vergessen
 

 

 


PHP Developer Forum Hier habt ihr die Möglichkeit, eure Skriptprobleme mit anderen Anwendern zu diskutieren. Seid so fair und beantwortet auch Fragen von anderen Anwendern. Dieses Forum ist sowohl für ANFÄNGER als auch für PHP-Profis! Fragen zu Laravel, YII oder anderen PHP-Frameworks.

Antwort
 
LinkBack Themen-Optionen Bewertung: Bewertung: 1 Stimmen, 5,00 durchschnittlich.
  #1 (permalink)  
Alt 09-10-2009, 10:34
Gunah
 Registrierter Benutzer
Links : Onlinestatus : Gunah ist offline
Registriert seit: Oct 2009
Beiträge: 87
Gunah befindet sich auf einem aufstrebenden Ast
Standard flush funktioniert nicht...

Moin,

Ich denke dieses ist eines der wenigen Foren, was meine Fragen beantworten kann :-)

und zwar baue ich einen JavaScript Ladebalken, die Daten werden mittels jQuery UI überprüft, dass zum vorhaben...

Momentan habe ich eine einfache for Schleife die mir die Daten prompt liefern soll...
lokal und auf ein paar Server läuft dieses aber nicht überall... ich habe aber leider keine Ahnung, warum dieses nicht überall funktioniert...

bei denen wo es nicht funktioniert kommt das Ergebnis erst nach einer Zeit ( was mit an der Funktion sleep liegt... )

hier mal das Script:
PHP-Code:
<?php
ob_implicit_flush
(1); 
ob_start();
for(
$i 1$i <= 10$i++) {
    echo 
$i.'0<br>';
    
ob_flush(); flush();
    
sleep(1);
}

?>
dieses Funktioniert nur auf wenigen Webspaces die mir zur verfügungstehen :-/

getestet in folgenden PHP Versionen:
- PHP5.2.11-1 (Debian Squeeze, suexec)
- PHP5.1.2 (SuSE 10.1, mod_php)
*PHP5.2.10 (Win32 binaries von php.net, als ScripAlias) loacler test

langsam fällt mir echt nichts mehr ein warum es nicht überall geht :-(

Gruß
Gunah
Mit Zitat antworten
  #2 (permalink)  
Alt 09-10-2009, 11:05
AmicaNoctis
  Moderatorin
Links : Onlinestatus : AmicaNoctis ist offline
Registriert seit: Jul 2009
Beiträge: 5.709
Blog-Einträge: 9
AmicaNoctis sorgt für eine eindrucksvolle AtmosphäreAmicaNoctis sorgt für eine eindrucksvolle Atmosphäre
Standard

Hallo Gunah,

ich würde erst mal das ganze Output-Buffering rausnehmen, weil mir das in diesem Falle nicht zielführend erscheint. Der flush-Aufruf kann (soll) drin beliben. Wenn du dann nach dem <br> noch \n (mit double quotes!) ausgibst, "sollte" es funktionieren.

Gruß,

Amica
Mit Zitat antworten
  #3 (permalink)  
Alt 09-10-2009, 11:18
Gunah
 Registrierter Benutzer
Links : Onlinestatus : Gunah ist offline
Registriert seit: Oct 2009
Beiträge: 87
Gunah befindet sich auf einem aufstrebenden Ast
Standard

PHP-Code:
<?php
for($i 1$i <= 10$i++) {
    echo 
$i."0\n";
    
//ob_flush();
    
flush();
    
sleep(1);
}
?>>
funktioniert, genauso wie vorher auch (egal ob ob_flush() ) vorhanden ist oder nicht...
unter mod_php geht es ohne Probleme. aber unter SuEXEC macht es nur Probleme, da wird wenn alles auf einmal angezeigt... (Debian Squeeze amd64, PHP vom repo Server, geladen...) nur nach 10 Sekunden halt...

denke irgendwie, dass es eher ein Problem mit dem PHP Interpreter unter SuEXEC gibt...
Mit Zitat antworten
  #4 (permalink)  
Alt 09-10-2009, 11:22
AmicaNoctis
  Moderatorin
Links : Onlinestatus : AmicaNoctis ist offline
Registriert seit: Jul 2009
Beiträge: 5.709
Blog-Einträge: 9
AmicaNoctis sorgt für eine eindrucksvolle AtmosphäreAmicaNoctis sorgt für eine eindrucksvolle Atmosphäre
Standard

Wenn die Änderung nichts gebracht hat, kannst du sie auch wieder rückgangig machen. Lt. PHP Handbuch sind solche Probleme mit flush sehr weit verbreitet und liegen an der Pufferung des Servers selbst (die man mit PHP nicht verhindern kann) oder des Browsers (z. B. IE).

Inwiefern es sich lösen ließe, wenn du durch einen bestimmten Content-Type-Header den Server überzeugst, dass es sich um Streaming-Daten handelt, kann ich grad nicht sagen, aber das wäre ein potentieller Ansatz - wenn es auch ein dreckiger Hack bleibt, gegen den mindestens genauso viele Gründe sprächen.

Edit: Ich weiß zwar nicht, ob das auf dein Problem anwendbar ist, aber bei meinem aktuellen Webtop-Projekt habe ich auch Ladefortschrittsbalken. Das realisiere ich so, dass ich den Payload (XML oder JSON) portioniere (z. B. 50 Teile à 2%) und streng seriell mit AJAX lade. Streng seriell bedeutet dabei, dass ein Request erst angestoßen wird, wenn der vorherige beendet ist.

Gruß,

Amica

Geändert von AmicaNoctis (09-10-2009 um 11:31 Uhr)
Mit Zitat antworten
  #5 (permalink)  
Alt 09-10-2009, 11:30
Gunah
 Registrierter Benutzer
Links : Onlinestatus : Gunah ist offline
Registriert seit: Oct 2009
Beiträge: 87
Gunah befindet sich auf einem aufstrebenden Ast
Standard

danke für deine Antworten,

habe nochmal weiter geguckt... und es gibt mit einigen Apache Configs wohl Probleme und bei SuEXEC wird die Seite in irgendeiner art gecached und dann erst dem Indianer übermittel, was somit dann ja nicht funktioniert...

Ich überlege gerade nach einer alternative...
aber komme irgendwie nicht drauf :-/
denke werde eine Cache Datei schreiben die von JS abgerufen wird die dieses simuliert und eben in einer schleife ausgeführt wird...

da viele Hoster, auch aus Sicherheitsgründen, auf SuEXEC setzten...

Gruß
Gunah
Mit Zitat antworten
  #6 (permalink)  
Alt 09-10-2009, 11:43
AmicaNoctis
  Moderatorin
Links : Onlinestatus : AmicaNoctis ist offline
Registriert seit: Jul 2009
Beiträge: 5.709
Blog-Einträge: 9
AmicaNoctis sorgt für eine eindrucksvolle AtmosphäreAmicaNoctis sorgt für eine eindrucksvolle Atmosphäre
Standard

Zitat:
Zitat von Gunah Beitrag anzeigen
Ich überlege gerade nach einer alternative...
Das Edit zu meinem letzten Beitrag hast du schon gesehen? Manchmal gehen die unter.
Mit Zitat antworten
  #7 (permalink)  
Alt 09-10-2009, 11:45
Gunah
 Registrierter Benutzer
Links : Onlinestatus : Gunah ist offline
Registriert seit: Oct 2009
Beiträge: 87
Gunah befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von AmicaNoctis Beitrag anzeigen
Das Edit zu meinem letzten Beitrag hast du schon gesehen? Manchmal gehen die unter.
jupp dank dir
Mit Zitat antworten
  #8 (permalink)  
Alt 10-10-2009, 10:48
Scar
 Registrierter Benutzer
Links : Onlinestatus : Scar ist offline
Registriert seit: Dec 2002
Beiträge: 44
Scar ist zur Zeit noch ein unbeschriebenes Blatt
Standard

wenn man flushen will wurden früher meist cgi scripte oder light httpd server genutzt um zum beispiel diese damaligen varianten von html chat rooms zu realisieren. das waren seltener apache+php configs, windows und linux verhalten sich hier auch nochmal unterschiedlich.

mit nem parallelen ajax stream sollte sich das aber schön lösen lassen. es sollten sich im web auch bereits einige fertige progressbar implementierungen finden lassen bei denen du bestimmt etwas abschauen kannst.

* just my 2 cent ..
Mit Zitat antworten
  #9 (permalink)  
Alt 12-10-2009, 16:36
Gunah
 Registrierter Benutzer
Links : Onlinestatus : Gunah ist offline
Registriert seit: Oct 2009
Beiträge: 87
Gunah befindet sich auf einem aufstrebenden Ast
Standard

jop danke für eure Antworten, wie gesagt mache es mit einem Extra Stream (tempfile)... als Basis Framework (JS) nutze ich jQuery... dort ist zwar in den UIs schon eine progressbar vorhanden, aber benötigt, man nicht wirklich, da dieses etwas aufgeblasen ist... mache es daher "manuell"... und lasse einfach nur immer die Breite "width" verändern und sende an einen DIV die Aktuelle Prozentzahl...

gruss
gunah
Mit Zitat antworten
Antwort

Lesezeichen


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
flush(); funktioniert IE nicht RobertRitschel PHP Developer Forum 4 01-07-2005 16:52
flush()? Berni PHP Developer Forum 32 17-10-2003 10:44
Flush() auf Suse 8.1 funktioniert nicht. niknormal PHP Developer Forum 12 31-03-2003 19:45
flush(); crono PHP Developer Forum 4 30-11-2002 14:22
flush Bernd PHP Developer Forum 4 17-12-2001 20:46

Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre 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


PHP News

ebiz-trader 7.5.0 mit PHP7 Unterstützung veröffentlicht
ebiz-trader 7.5.0 mit PHP7 Unterstützung veröffentlichtDie bekannte Marktplatzsoftware ebiz-trader ist in der Version 7.5.0 veröffentlicht worden.

28.05.2018 | Berni

Wissensbestand in Unternehmen
Wissensbestand in UnternehmenLebenslanges Lernen und Weiterbilden sichert Wissensbestand in Unternehmen

25.05.2018 | Berni


 

Aktuelle PHP Scripte

PHP Server Monitor

PHP Server Monitor ist ein Skript, das prüft, ob Ihre Websites und Server betriebsbereit sind.

11.09.2018 Berni | Kategorie: PHP/ Security
PHP WEB STATISTIK ansehen PHP WEB STATISTIK

Die PHP Web Statistik bietet Ihnen ein einfach zu konfigurierendes Script zur Aufzeichnung und grafischen und textuellen Auswertung der Besuchern Ihrer Webseite. Folgende zeitlichen Module sind verfügbar: Jahr, Monat, Tag, Wochentag, Stunde Folgende son

28.08.2018 phpwebstat | Kategorie: PHP/ Counter
Affilinator - Affilinet XML Produktlisten Skript

Die Affilinator Affilinet XML Edition ist ein vollautomatisches Skript zum einlesen und darstellen der Affili.net (Partnerprogramm Netzwerk) Produktlisten und Produktdaten. Im Grunde gibt der Webmaster seine Affilinet PartnerID ein und hat dann unmittelb

27.08.2018 freefrank@ | Kategorie: PHP/ Partnerprogramme
 Alle PHP Scripte anzeigen

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