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, 11: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, 12: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, 12: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, 12: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 12:31 Uhr)
Mit Zitat antworten
  #5 (permalink)  
Alt 09-10-2009, 12: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, 12: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, 12: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, 11: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, 17: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 17:52
flush()? Berni PHP Developer Forum 32 17-10-2003 11:44
Flush() auf Suse 8.1 funktioniert nicht. niknormal PHP Developer Forum 12 31-03-2003 20:45
flush(); crono PHP Developer Forum 4 30-11-2002 15:22
flush Bernd PHP Developer Forum 4 17-12-2001 21: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

Die RIGID-FLEX-Technologie
Die RIGID-FLEX-TechnologieDie sogenannte "Flexible Elektronik" , oftmals auch als "Flexible Schaltungen" bezeichnet, ist eine zeitgemäße Technologie zum Montieren von elektronischen Schaltungen.

06.12.2018 | Berni

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


 

Aktuelle PHP Scripte

ModuleStudio ansehen ModuleStudio

Modellgetriebene Entwicklung von Erweiterungen für das Open Source Framework Zikula.

15.01.2019 Guite | Kategorie: PHP ENTWICKLUNGSUMGEBUNG
FAQ Script PHP ansehen FAQ Script PHP

FAQ Script PHP is a simple knowledgebase script and you could use it as a Frequently Asked Question section on your website. It is written in PHP and MySQL.

14.01.2019 nevenov | Kategorie: PHP/ FAQ
Admidio Mitgliederverwaltung

Admidio ist eine kostenlose Online-Mitgliederverwaltung, die für Vereine, Gruppen und Organisationen optimiert ist. Sie besteht neben der Mitgliederverwaltung aus einer Vielzahl an Modulen (Foto-, Download-, Terminverwaltung), die in eine neue oder besteh

08.01.2019 webmaster52@ | Kategorie: PHP/ Groupware
 Alle PHP Scripte anzeigen

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