HTML Timing Problem

  • Hi
    Mein Raspi (B+) stellt eine einfache Webseite in Form eines von Pygame gezeichneten Bildes zur Verfügung.
    Nun ist der Raspi im Python Betrieb natürlich nicht der schnellste und so kommt es entweder immer wieder dazu,
    dass das Bild auf dem aufrufenden Rechner gar nicht, oder nur teilweise gezeichtnet wird.

    Mit HTML kenne ich mich nicht so aus. Hat jemand eine Idee, wie man das Problem meistern kann.
    HTML müsste prüfen, ob das Bild gerade ganz zur Verfügung steht und wenn nicht aus dem Cache zeichen.

    Gruss
    Al

  • Hallo,

    Zitat

    HTML müsste prüfen, ob das Bild gerade ganz zur Verfügung steht und wenn nicht aus dem Cache zeichen.


    HTML ist eine reine Auszeichnungssprache und hat keine "Logik". Heißt: HTML kann nichts prüfen. Wenn eine Webseite ein Bild aufruft, dann muss du serverseitig sicherstellen, dass das Bild komplett ist bzw. die Daten des kompletten Bilds gesendet werden.

    Gruß, noisefloor

  • HTML selbst nicht. Aber ich habe inzwischen erfahren, das man Java-Script direkt einbauen kann.
    Und es gibt Möglichkeiten, die File-Size festzustellen. In Samples wird dann ein Ausweichbild gezeigt,
    ich möchte aber lediglich, das im Moment dann nur das alte Bild weiter gezeigt wird.

    Und das ist mit Sicherheit machbar.

    P.S. Es gibt auch die onerror in HTML.

  • Habe den Refresh jetzt erst mal auf 15 Sekunden gesetzt, so nervt es nicht grad so.
    Aufgerufen wird die Seite hauptsächlich von meiner Android App, vielleicht kann ich
    hier etwas machen. Von Java habe ich wesentlich mehr Ahnung.

    Viele Grüsse und danke
    Al

  • wie sieht denn deine PythonScript aus? Vielleicht kann man das etwas optimieren, zB dass das Bild erst gespeichert wird wenn es auch fertig ist.
    Wie andere auch schon geschrieben haben. Kannst du das Bild unter bestimmten Voraussetzungen auch mit Javascript nachladen. Da würde ich jQuery nutzen.

    zeig einfach mal deinen hmtl- und auch python-code!


  • HTML ist eine reine Auszeichnungssprache und hat keine "Logik". Heißt: HTML kann nichts prüfen. Wenn eine Webseite ein Bild aufruft, dann muss du serverseitig sicherstellen, dass das Bild komplett ist bzw. die Daten des kompletten Bilds gesendet werden.

    komisch, ich hatte versucht per wget eine Webseite aus meinen Atmel zu saugen, der PI hat es nie geschafft, es fehlten immer Bytes, letzendlich habe ich aufgegeben. Jeder PC, jeder Browser IE FF hat die Webseite immer holen können und ich musste nie mehrfach aufrufen. Kar ist der Atmel lahm und liefert nicht immer "sofort" die daten nur warum der PI darauf besteht und fehlerhafte oder unvollständige Daten abruft erschliesst sich mir nicht wenn es im IE und FF klappt.

    Ich hatte sogar die wget Daten auf Größe überprüft, war meine Seite empangen > 5kB so war sie richtig und vollständig, aber das klappte nie, im Testlauf ja im Cronjob auch nie.

    lasst die PIs & ESPs am Leben !
    Energiesparen:
    Das Gehirn kann in Standby gehen. Abschalten spart aber noch mehr Energie, was immer mehr nutzen. Dieter Nuhr
    (ich kann leider nicht schneller fahren, vor mir fährt ein GTi)

  • Also das *.bmp wird zuallerletzt gespeichert, vorher wird nur das Pygame-Object bearbeitet.

    Mein Gedanke war nur, dass das BMP halt schon fertig ist für das C-Berry-Display, so ist es im eigentlichen Sinne
    ein leichtes, das Bild per HTML auszugeben. Denke aber, das ich die Taktik ändern muss und eine
    echte HTML Seite erstelle. Das sollte um ein vielfaches schneller gehen.

    Danke für eure Interesse
    Al

  • Zeig mal dein Pygame Script welches die Bilddatei erzeugt.

    Denn deine Aussage:

    Nun ist der Raspi im Python Betrieb natürlich nicht der schnellste


    Ist etwas schwammig. Zum einen kommt es darauf an Welchen Pi man verwendet und zum anderen kann man jedes Script ausbremsen... Selbst auf einem vermeintlich langsamen A+ kann ein Pygame Script sehr schnell laufen.

    Da du aber schreibst es sei Bei Dir langsam, wird es vermitlich an dem Script liegen, nicht am Pi :fies:

    Desweiteren frage ich mich aktuell wieso du überhaupt pygame verwendest um ein *.bmp zu erzeugen und dann zusätzlich noch einen Webserver mit HTML nutzt um dieses Bild anzuzeigen? :s
    Alleine diese Umsetzung über 2 Ecken kann ausbremsen, zumal du die Datei ja auch noch ständig "reloadest".


    PS: Java ist nicht gleich Javascript!

  • In Beitrag #46 habe ich erklärt, daß ich das Bitmap mittels Pygame für das C-Berry Display sowieso erstelle. Als letzten Schritt speichere ich das Pygame Window in eine Datei.
    Was gibt es da schnelleres und was soll da bremsen?
    Wenn ich es nicht dauernd Reloaden würde wäre es ja Sinnlos.
    Was nützen Schaltzustände wenn sie nicht aktualisiert werden.
    Weil ich in meiner mobilen App nichts anderes brauche nehme ich das eh schon fertige Bild - ist doch naheliegend.
    Also nicht immer vom dümmst möglichen User ausgehen bitte.

  • Hallo,

    @Al_Sodann: Aha. Bis zum letzten Post hast du ja keinerlei Hintergründe geliefert zu wie warum wieso - das wirft dann nämlich ggf. ein anderes Licht auf die Sache. Je mehr Infos du in den Ausgangspost packst, um so besser.

    Zitat

    Wenn ich es nicht dauernd Reloaden würde wäre es ja Sinnlos.


    Reloaden im Sinne von `refresh` auf der Webseite ist in diesem Fall nicht unbedingt sinnvoll. Besser wäre hier IMHO in der Tat das weiter oben erwähnte nachladen per AJAX.

    Zitat

    Weil ich in meiner mobilen App nichts anderes brauche nehme ich das eh schon fertige Bild - ist doch naheliegend.


    Was nichts daran ändert, dass .bmp für Webseiten ein suboptimales Format ist.

    Was du nach wie vor nicht erwähnt hast ist, wie du die Webseite / das Bild auslieferst.


    Zitat

    Was nützen Schaltzustände wenn sie nicht aktualisiert werden.


    Plan B: Schaltzustände per JSON oder XML an den Browser schicken und dort die Grafik per JavaScript zeichnen lassen.

    Gruß, noisefloor

  • "dümmst möglichen User ausgehen" ... Tu ich nicht, aber Wir wissen immer noch nicht was du in pygame überhaupt erzeugst - also was wird in dem BMP dargestellt? Woher sollen wir das wissen? Hellsehen? Erwähnt hast du dazu bisher nichts... Nur das du eine BMP mit pygame erzeugst und diese auf deinem Handy anzeigst... Aber vielleicht ist der gesamte Weg aber ja auch überflüssig? *schulterzuck*

  • Sorry, ich hatte ja bereits angekünigt, dass ich einen anderen Weg einschlage.
    Das Thema BMP ist bereits Ad Acta gelegt.
    Mir ist nur im Moment nicht schon wieder nach einer neuen Scriptsprache.
    Habe das etwas hinten angestellt.

    Trotzdem echten Dank an alle, die sich hier bemühen.

    Lieben Gruss

Jetzt mitmachen!

Du hast noch kein Benutzerkonto auf unserer Seite? Registriere dich kostenlos und nimm an unserer Community teil!