Tito Duarte: Content-Type: multipart/mixed geht mit NS 4.x aber nicht mit IE 4.X o. 5.X

Hi!

Ich hab' ein Perl-Script das eine multipart HTML-DATEI erzeugt! Im NS geht es im explorer zeigt er alle HTML Seiten untereinander an anstatt die alte zu ueberscheiben!

Content-type: multipart/mixed;boundary=ThisRandomString

--ThisRandomString
Content-type: text/html

<html><body>...</body></html>

--ThisRandomString
Content-type: text/html

<html><body>...</body></html>

usw.

NS geht, wie gesagt! IE zeigt mir die Content-type: text/html dinger an! (+"--ThisRandomString")

Was mach ich falsch!

  1. Ich hab' ein Perl-Script das eine multipart HTML-DATEI erzeugt! Im NS geht es im explorer zeigt er alle HTML Seiten untereinander an anstatt die alte zu ueberscheiben!
    Was mach ich falsch!

    Ich bin schon überrascht, daß der Netscape das irgendwie anzeigt.

    Eigentlich ist die Idee eines Browsers doch eher, daß er *eine* URL anspricht und dann *ein* Dokument zurückerhält. Ich habe keine Ahnung, wie ein Browser im allgemeinen Falle sinnvoll Multipart-Pakete darstellen sollte ...

    Wenn Du Daten vom Browser zum Server schickst, dann macht Multipart schon eher Sinn, weil auf der anderen Seite normalerweise ein Programm wartet, das auf ein so komplexes Paket vorbereitet ist (etwa ein CGI-Skript zum Upload).

    Was willst Du denn überhaupt erreichen?

    1. Ich hab' ein Perl-Script das eine multipart HTML-DATEI erzeugt! Im NS geht es im explorer zeigt er alle HTML Seiten untereinander an anstatt die alte zu ueberscheiben!
      Was mach ich falsch!

      Ich bin schon überrascht, daß der Netscape das irgendwie anzeigt.

      Eigentlich ist die Idee eines Browsers doch eher, daß er *eine* URL anspricht und dann *ein* Dokument zurückerhält. Ich habe keine Ahnung, wie ein Browser im allgemeinen Falle sinnvoll Multipart-Pakete darstellen sollte ...

      Wenn Du Daten vom Browser zum Server schickst, dann macht Multipart schon eher Sinn, weil auf der anderen Seite normalerweise ein Programm wartet, das auf ein so komplexes Paket vorbereitet ist (etwa ein CGI-Skript zum Upload).

      Was willst Du denn überhaupt erreichen?

      Ich will, dass waehrend mein CGI-Script etwas berechnet, der BROWSER Eine Bitte warten Meldung anzeigt und wenn er fertig ist die richtige HTML Seite! Ohne eine zwischen Datei zu erzeugen! Diese Seite soll er dann auch automatisch Drucken! (Was ein anderes Problem ist.
      Nicht das Drucken, sondern das automatisch! Ohne ein Fenster anzuzeigen!)

      CU
      Tito Duarte

      1. Was willst Du denn überhaupt erreichen?
        Ich will, dass waehrend mein CGI-Script etwas berechnet, der BROWSER Eine Bitte warten Meldung anzeigt und wenn er fertig ist die richtige HTML Seite! Ohne eine zwischen Datei zu erzeugen! Diese Seite soll er dann auch automatisch Drucken! (Was ein anderes Problem ist.
        Nicht das Drucken, sondern das automatisch! Ohne ein Fenster anzuzeigen!)

        Dein Hauptproblem ist m. E. erst mal der Server-Timeout. Wenn der Dich erwischt, dann war's das mit dem Warten. Ansonsten könntest Du ungefähr das versuchen, was ich mir neulich gebastelt habe.

        Das war ein Perl-Skript, welches als Ergebnis seiner Berechnung erst mal eine HTML-Datei generiert, welche ein Frameset ist. Oben ein großer Frame, unten ein kleiner als eine Art Statuszeile (die bei Dir keinen Sinn macht - bei mir schon, ich verwende Dateien, und zwar mit $PID im Namen).

        Die Statuszeile enthält ein HTML-Dokument, das selbst wiederum durch ein CGI-Skript ausgegeben wird. Wenn gerade etwas anzuzeigen ist, dann wird es angezeigt - wenn nicht, dann nicht (nahezu leeres HTML-Dokument, nur Hintergrundbild).
        Dieses HTML-Dokument ruft sich selbst alle <n> Sekunden (der Wert von <n> hängt davon ab, in welcher Phase meine Berechnung gerade ist) selbst auf - es generiert ja die HTML-Seite, durch die es selbst wieder aufgerufen wird (CGI-Parameter in der URL des META REFRESH-Tags) und weiß, wann es das nächste Mal aktiviert werden will.

        Im oberen Frame - das ist der für Dich interessante - läuft nun das CGI-Skript, das so ähnlich wartet wie Deines. Irgendwann ist es fertig und gibt seine Ergebnisse aus.
        Problem: Solange es wartet, sieht der Frame leer und häßlich aus. Was tun?
        Sehr einfach: Auch dieses Skript ruft sich selbst auf. Aber nur genau einmal!
        Die erste "Instanz" gibt die "bitte warten"-Meldung auf - und direkt danach ruft es sich selbst mit *einem* zusätzlichen Parameterwert auf, der dazu führt, daß *nun* tatsächlich etwas berechnet wird!
        Das dauert nun so lang, wie es halt dauert ... am Ende habe ich meine Ergebnisse auf dem Bildschirm, und bis dahin habe ich meine "bitte warten"-Meldung im Browser ...

  2. Hi!

    Ich hab' ein Perl-Script das eine multipart HTML-DATEI erzeugt! Im NS geht es im explorer zeigt er alle HTML Seiten untereinander an anstatt die alte zu ueberscheiben!

    Content-type: multipart/mixed;boundary=ThisRandomString

    --ThisRandomString
    Content-type: text/html

    <html><body>...</body></html>

    --ThisRandomString
    Content-type: text/html

    <html><body>...</body></html>

    usw.

    NS geht, wie gesagt! IE zeigt mir die Content-type: text/html dinger an! (+"--ThisRandomString")

    Was mach ich falsch!

    Hi Michael,

    Dieses Verfahren nennt sich ServerPush und IE unterstuetzt es leider nicht, ich habe derzeit das gleiche Problem mit Opera das den Mime-Typ auch nicht zu kennen scheint, doch ich habe z.B. bei www.metacrawler.com gesehen das ServerPush bei Opera auch moeglich ist, waere schön wenn mir hier jemand eine Alternative zu multipart/mixed geben könnte.....

    Gruss aus Bremen...
    Sebastian Riedel