timothy: wie besuchte Links erkennen (nicht an der Fabre !!!)

Hi Gemeinde,

eine kurze Vorgeschichte: Der SELFBrowser funzt ja zur Zeit nicht. So habe ich mir selber geholfen und ein rudimentäres Teil geschriebne welches mir (PERL) die Forums-Index-Seite abruft die ich mir aufbereite und anzeige. Darin kann ich dann Filter nach bestimmten Themengebieten setzen (oder auch Verfasser etc.) , meine eigenen Postings farblich abheben etc.

Nun habe ich noch folgendes kleine Problem: Ich möchte gern einen Filter über vollständig bereits gelesene Threads setzen, d.h. jeder Link im Thread ist bereits von mir besucht worden. Gibt es eine Möglichkeit z.B. per Javascript dies irgendwie abzufragen. Der Browser muß sich dies ja auch irgendwie merken, da er Session übergreifend besuchte Links andersfarbig darstellt.

Vielleicht weiß ja jemand eine Lösung - wäre nett.

Bye
Timothy

P.P. Ich hoffe, der/die Betreiber des Forums sowie der/die Entwickler des SELFBrowsers nehmen mir meine Eigeninitiative nicht zu übel.

  1. Nun habe ich noch folgendes kleine Problem: Ich möchte gern einen Filter über vollständig bereits gelesene Threads setzen, d.h. jeder Link im Thread ist bereits von mir besucht worden. Gibt es eine Möglichkeit z.B. per Javascript dies irgendwie abzufragen. Der Browser muß sich dies ja auch irgendwie merken, da er Session übergreifend besuchte Links andersfarbig darstellt.

    Hm, ich weiß nicht genau, wie Du das Ganze mit Perl realisiert hast.
    Hast Du einen lokalen Webserver dazwischengeschalten? So würde ich es realisiert haben. Ein eigenes CGI-Skript, welches die Hauptdatei liest (LWP::Simple) und lokal darstellt (ggf. gefiltert oder gefärbt oder war auch immer).
    Wenn dieses Skript dann die Original-Links auf das Forum anzeigt, dann brauchst Du gar keine Buchführung machen, sondern es reicht die des Browsers. Willst Du etwas Anderes, dann mache die Buchführung über einen Hash selbst und speichere dessen Inhalt periodisch oder bei "Sitzungsende" in einer Datei.

    P.P. Ich hoffe, der/die Betreiber des Forums sowie der/die Entwickler des SELFBrowsers nehmen mir meine Eigeninitiative nicht zu übel.

    Aber nicht doch - jemand, der selbst etwas erschafft, ist viel kreativer als jemand, der jammert, wieso andere ihm nicht seine Lösung nachwerfen!

    1. Hm, ich weiß nicht genau, wie Du das Ganze mit Perl realisiert hast.
      Hast Du einen lokalen Webserver dazwischengeschalten?

      So würde ich es realisiert haben. Ein eigenes CGI-Skript, welches die Hauptdatei liest (LWP::Simple) und lokal darstellt (ggf. gefiltert oder gefärbt oder war auch immer).

      Wenn dieses Skript dann die Original-Links auf das Forum anzeigt, dann brauchst Du gar keine Buchführung machen, sondern es reicht die des Browsers. Willst Du etwas Anderes, dann mache die Buchführung über einen Hash selbst und speichere dessen Inhalt periodisch oder bei "Sitzungsende" in einer Datei.

      Genau so mache ich es. Und mein Problem ist nur, diese Buchführung bei einem unbeabsichtigten Verlassen der Seite zu sichern -> siehe auch weiter oben ("Was geht noch nach onUnload").

      P.P. Ich hoffe, der/die Betreiber des Forums sowie der/die Entwickler des SELFBrowsers nehmen mir meine Eigeninitiative nicht zu übel.

      Aber nicht doch - jemand, der selbst etwas erschafft, ist viel kreativer als jemand, der jammert, wieso andere ihm nicht seine Lösung nachwerfen!

      Danke - habe ich mir schon gedacht. Ist ja eigentlich für mich nur alles Übung, um in der Web-Programmierung fit zu werden. Habe z.B. auch schon das Forum selbst "nachempfunden" mit einer MySQL-Datenbank im Hintergrund. Läuft aber alles bei mir lokal (OMNIHttpd).

      Bye
      Timothy

      1. Wenn dieses Skript dann die Original-Links auf das Forum anzeigt, dann brauchst Du gar keine Buchführung machen, sondern es reicht die des Browsers. Willst Du etwas Anderes, dann mache die Buchführung über einen Hash selbst und speichere dessen Inhalt periodisch oder bei "Sitzungsende" in einer Datei.
        Genau so mache ich es. Und mein Problem ist nur, diese Buchführung bei einem unbeabsichtigten Verlassen der Seite zu sichern -> siehe auch weiter oben ("Was geht noch nach onUnload").

        Das spricht dafür, diese Sicherung nach jedem einzelnen Link vorzunehmen - das sollte bezüglich Performance lokal kein Problem sein.

        1. Das spricht dafür, diese Sicherung nach jedem einzelnen Link vorzunehmen - das sollte bezüglich Performance lokal kein Problem sein.

          Wird wohl so sein - aber ich habe ein anderes Problem. Da die Sicherung über ein CGI-Script laufen soll, habe ich das Problem, das meine aktuelle Seite gelöscht wird

          <form action="http://localhost/save.cgi" method="get"...>

          Ich habe es mit print $vl->header('text/html','204 No response') versucht aber meine aktuelle Seite wird trotzdem gelöscht.
          Falls Du dafür keinen Tip hast, werde ich dieses Problem mal in einem eigenen Thread im Forum posten.

          "Wie schaffe ich es, ein CGI-Script aufzurufen, ohne dass die rufende Seite gelöscht wird???".

          Bye
          Timothy

          1. "Wie schaffe ich es, ein CGI-Script aufzurufen, ohne dass die rufende Seite gelöscht wird???".

            Genauso gut könntest Du fragen: Wie schaffe ich es, eine neue Seite zu laden, ohne daß die geladene Seite gelöscht wird.

            Dein CGI-Skript hat jeweils die Aufgabe,
            1. die vorher (!) angezeigte Seite dem Gedächtnis hinzuzufügen (über einen CGI-Parameter der vorherigen Instanz - nur so können die Instanzen miteinander kommunizieren!) und
            2. danach den Inhalt der Forumshauptdatei neu darzustellen.

            Ist der in 1. genannte Parameterwert leer, dann wurde das CGI-Skript offensichtlich nicht von sich selbst aufgerufen und hat nichts abzuspeichern.

            1. Genauso gut könntest Du fragen: Wie schaffe ich es, eine neue Seite zu laden, ohne daß die geladene Seite gelöscht wird.

              Dein CGI-Skript hat jeweils die Aufgabe,

              1. die vorher (!) angezeigte Seite dem Gedächtnis hinzuzufügen (über einen CGI-Parameter der vorherigen Instanz - nur so können die Instanzen miteinander kommunizieren!) und
              2. danach den Inhalt der Forumshauptdatei neu darzustellen.

              Ist der in 1. genannte Parameterwert leer, dann wurde das CGI-Skript offensichtlich nicht von sich selbst aufgerufen und hat nichts abzuspeichern.

              Gut - einen "work around" wird es immer geben - löst aber mein grundsätzliches Problem nicht: In einem Buch "Web-Client-Programmierung" von Wong habe ich gelesen, daß der Response-Status 204 dem Browser anzeigt, nichts zu tun, d.h. die (sagen wir mal) rufende Seite nicht (!!!) zu löschen. Leider ist der Author an der besagten Stelle nicht weiter darauf eingegangen, wie das in einem Perl-CGI-Script zu handeln wäre - und ich hatte das Buch nur kurz in der Hand (vielleicht wurde ja noch konkreter darauf eingegangen - ich habe es jedenfalls nicht gefunden).

              Also: ist dem so (204) -> und wenn ja, wie wird das mit Perl/CGI genutzt (

              use CGI
              $vl=new CGI;
              print $vl->header(status=> '204 No response');

              wie aus der CGI-Doku bringt es (jedenfalls bei mir) nicht.

              . Wäre, glaube ich, von allgemeiner Wichtigkeit für z.B. Hintergrundverarbeitung.

              Bye
              Timothy

          2. Hi Timothy!

            "Wie schaffe ich es, ein CGI-Script aufzurufen, ohne dass die rufende Seite gelöscht wird???".

            DA du ja den ie verwendest ist das eigentlich das kleinste problem - hänge an die links ein onclick daran wo du in einem iframe was display:none ist die pl aufrufen - fertig

            CU Roman

            1. DA du ja den ie verwendest ist das eigentlich das kleinste problem - hänge an die links ein onclick daran wo du in einem iframe was display:none ist die pl aufrufen - fertig

              oder crossbrowser (für die beiden GROßEN): in einem 0 px großen Frame -> löst aber meine grundsätzliche Frage nicht.
              (siehe meine Antwort an Michael).

              Bye
              Timothy