Ajax Konsole >> durchgehende Ausgabe

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Ajax Konsole >> durchgehende Ausgabe

    Hiho,

    ich habe mir erstmal das http://www.sitepoint.com/article/take-command-ajax/ Tutorial durch gesehen, und muss sagen, ich bin begeistert! genau das richtige für mein Projekt!

    Zum Problem:
    Bei meinem Projekt geht es darum eine shell-script(bash) über php aus führen zu lassen.
    nicht das Problem *g*

    Nur:
    Dieses script hat einen ladebalken, welcher natürlich nicht von php wiedergegeben werden kann... da die komplette Ausgabe in einer Textdatei gespeichert wird, wird das Problem notdürftig gelöst :/... man sieht halt keinen Ladebalken.

    Ich wollte fragen ob man es schaffen könnte, dieses Tutorial Script so um zu schreiben, das alle 3~5 Sekunden ein neues "Bild" der Console geladen wird, wo man den aktuellen Fortschritt sehen kann?

    Da ich noch keine Kenntnisse in Sachen Ajax erworben hab, wollte ich mich erstmal vergewissern.

  • #2
    Bei meinem Projekt geht es darum eine shell-script(bash) über php aus führen zu lassen.
    Wie machst du das? Das heißt, wohin gelangt die Ausgabe?

    Kommentar


    • #3
      also der aufruf erflogt einfach über ein system() befehl.

      system(./script.sh -paramter xy);

      Kommentar


      • #4
        Dieses script hat einen ladebalken, welcher natürlich nicht von php wiedergegeben werden kann...
        Wie verhält sich die Ausgabe denn, wenn du die PHP-Datei aufrufst?

        da die komplette Ausgabe in einer Textdatei gespeichert wird, wird das Problem notdürftig gelöst
        Das widerspricht deiner Antwort auf meine erste Nachfrage, oder verstehe ich dich falsch?

        Kommentar


        • #5
          Jaein, es wird beides gemacht, die Textdatei ist nur dafür da, dass die Ausgabe nicht nur einmal angezeigt werden kann, und ich notdürftig es mit exec() mache und nachträglich anzeigen lasse

          Die Ausgabe gibt alles aus bis auf den Ladebalken. also alle "statischen" Objekte.

          hier mal etwas genauer:

          Code:
          next file: datei.txt
          #############################################################100,0%
          
          Filename: datei.txt
          ausgegeben wird nur

          Code:
          next file: datei.txt
          
          Filename: datei.txt
          auch interessant wenn ich die ajax Lösung benutze, die ich am Anfang gepostet habe, bekomme ich folgende Ausgabe, aber erst wenn das Script komplett fertig gelaufen ist.

          wäre ja schon einmal ein Anfang, nun müssten nur noch sowas wie zwischen Ergebnisse geliefert werden.. *g*
          Code:
          next file: 1.txt
          
          
          
          Filename: 1.txt
          
          Recent 23%
          
          Recent 23%
          
          Recent 69%
          
          Recent 92%
          
          Recent 92%
          Zuletzt geändert von moinmoin666; 14.10.2008, 20:40.

          Kommentar


          • #6
            Das ist doch schon mal ein vernünftiger Ansatz. Poste doch mal, was du bisher gemacht hast.

            Kommentar


            • #7
              eigentlich nix außergewöhnliches....

              Das Script aus dem tutorial, welches ich im ersten Post erwähnt habe...

              mom ich kann es mal uppen:
              http://rapidshare.com/files/15406870...t.tar.bz2.html

              dort habe ich einfach mal mein script.sh ausgeführt... die Ausgabe erschien aber erst nach dem alles abgelaufen war.

              ich müsst natürlich noch alles angleichen, so da nicht irgendwas dort eingegeben werden kann, aber das ist alles in der exec.php schon geregelt-...

              die Ausgabe müsste nur noch "öfters" kommen...

              andere Möglichkeit wäre: (kann ja sein das es wirklich nicht geht das der Konsolen Befehl ausgegeben wird) das ich mit screen -R einen virtuelle neue Umgebung erstelle... wäre aber suboptimal, da ich dann keine möglichkeit hätte, das script unter windows laufen zu lassen... was jetzt noch mit z.B. cygwin möglich ist.

              cURL erzeugt übrigens in .sh Script die Ausgabe, da Daten transferiert werden.

              Kommentar


              • #8
                ist es denn machbar, das jede 5 sekunden so eine art screenshot gesendet wird?

                Kommentar


                • #9
                  hehe warum so umständlich wenns auch einfach geht
                  schau dir ma dieses framework an http://backbase.com

                  die 4er version dürfte deine probleme lösen, ohne viel lernen zu müssen Einfach zu handeln und schnell realisierbar - allerdings nur in english

                  wer ajax nich kann sollte auf ein vernünftiges framwork zurückgreifen und / oder ajax lernen
                  Signatur-Text ...

                  Kommentar


                  • #10
                    hab mich mit frameworks leider auch noch nicht auseinander gesetzt, aber werde es mir mal genauer anschauen!

                    Aber sieht nicht gerade sehr Leihenhaft aus naja das größte Problem ist wohl das die Ausgabe per cURL gemacht wird und ich erst eine PIPE zum unterprozess ausbauen müsst, und daran scheitere ich ja schon kläglich :/
                    Zuletzt geändert von moinmoin666; 17.10.2008, 11:55.

                    Kommentar


                    • #11
                      Und wenn du kein AJAX lernen willst, was nun wirklich keine grosse Sache wäre, lade eben ein bild immer wieder neu, das du mit php erstellst. Du brauchst für einen Ladebalken ja nur z.B. 1x50 pixel und ziehst diese dann mit HTML in die Länge.

                      Kommentar


                      • #12
                        hmm naja was heißt nicht wollen :/
                        ich müsste erstmal javascipt richtig drauf haben.. und das finde ich um ellen schwieriger als php :P

                        ja aber ich kann ja das Bild nur xyz groß werden lassen, da ich ja nicht weiß, wie lang das uploaden dauert.. oder sehe ich das falsch, wenn es doch geht, dann wäre das wirklich die einfachste Möglichkeit

                        Kommentar


                        • #13
                          Was meinst du mit xyz gross werden lassen?
                          Du müsstest das Bild natürlich dann mit javascript z.B. so alle zwei Sekunden neu laden lassen. Bei den paar Bytes bei so einem Bild sollte das aber ja kein Problem sein.
                          bei diesem Bild sind dann die ersten x pixel eingefärbt und der Rest in einer anderen Farbe. Wieviele eingefärbt werden müssen erfährst du aus deiner Datei.

                          Kommentar


                          • #14
                            Verstehe ich richtig dass dort einfach nur die Ausgabe eines shell scripts ausgegeben werden soll? Wenn ja, wäre das wieder so ein Beispiel für unnötiges JavaScript und AJAX gedüdel - Warte doch einfach bis das Script durch ist und geb die Ausgabe aus.

                            Kommentar

                            Lädt...
                            X