Lanx: Offline Synchro von kompletten Sites

Hi

Ich moechten meinen Gaesten ermoeglichen die Seiten meiner Site
(Tutorials zu Vorlesungen) lokal abzulegen um offline arbeiten zu koennen.
Da staendig neue Sachen hinzukommen waere ein Synchromechanismus perfekt
der nur veraenderte oder neue Pages lokal cachet.

Koennt Ihr mir einen Ueberblick ueber die Moeglichkeiten geben?

Hier meine bisherigen Gedanken:

Ansatz 1: Offline Synchronisation a la IE5+:
 Man setzt ein Bookmark auf eine Sitemap und stellt eine
 Synchronisierung mit Linkverfolgung der Ebene 1 ein.
   Problem:  1. Bei Mozilla kann ich keinen adaequaten Mechanismus finden. Opera???
   2. Ich habe den Eindruck der IE5 macht keinen Unterschied ob er eine Page bereits synchronissiert hat.

Ansatz 2: Dynamisches Preloading per Javascript
 Ein Cookie speichert das Datum des letzten besuches und ein staendig aktualisiertes
 JS laedt alle neuen Pages in ein extra Window/Frame sodaB sie gecachet werden.
   Problem: 1. Ist das Cahche zu klein oder wird viel gesurft kann es passieren
     das alte unveraenderte Seiten aus dem Chache rausfallen.

Ansatz 3: Javaapplet synchronisiert in extra Directory
 Die Funktionsweise von wget wird nachgebaut und die Pages landen auf der Platte.
   Problem:  1. Hoher Programmieraufwand, Securityproblematiken
     Gibts sowas schon?

Ansatz 4: RegelmaeBige (z.B. woechentliche) Zipfiles erstellen die jeweils das Delta
 beinhalten.
   Problem:  1. bei groBem Intervall ist die Loesung zu Grob, bei kleinem
     der Aufwand der Synchroniesierung zu groB.

Ich konnte im Archiv nichts zu diesem Thema finden hat sich einer von euch vielleicht
schonmal Gedanken gemacht?

Dankbar fuer jeden Vorschlag!
  Rolf

  1. Hallo Rolf,

    eine Frage zu

    Ansatz 4: RegelmaeBige (z.B. woechentliche) Zipfiles erstellen die jeweils das Delta
     beinhalten.
       Problem:  1. bei groBem Intervall ist die Loesung zu Grob, bei kleinem
         der Aufwand der Synchroniesierung zu groB.

    Meinst du, den Aufwand bei dir oder bei deinen Gästen?

    MFG
    Detlef

    1. Hi Detlef

      Meinst du, den Aufwand bei dir oder bei deinen Gästen?

      Bei meinen Gästen. Einen regelmäßigen Job zu starten
      der Deltas von Directories zipped wäre kein so großer Aufwand.

      Tschau
        Rolf

      1. Hallo Rolf,

        jetz bin ich endlich wieder an meinem Rechner und kann dir antworten.

        Meine Gedanken zu deinem Problem waren folgende:

        • deine Seiten als Zip oder Rar eventuell selbstentpackend zur Installation anbieten
        • Deltas zippen und
          entweder
        • als Anhang zu einer art Newletter anbieten
          oder
        • Startseite des Offline Paketes mit Hinweis und Link zum Download der Aktualisierung(en) anbieten, eventuell in Kombination mit 2 teilautomatisiert (Versionsprüfung)

        Ist zwar ein zusätzlicher Aufwand bei deinen Gästen, imho aber nicht zu groß, für den Vorteil, jederzeit mit einer aktuellen Version offline arbeiten zu können.

        MFG
        Detlef

        --

        - Wissen ist gut
        - Können ist besser
        - aber das Beste und Interessanteste ist Weg dahin!
        1. Hi Detlef

          Am liebsten wäre mir Mozilla hätte das Synchronisationsfeature des IE... seufz.

          Nun von Deltazips bin ich momentan ganz abgekommen weil dann potenziell zu viele Artefakte übrig blieben. (siehe Diskussion mit Gerd)

          • Startseite des Offline Paketes mit Hinweis und Link zum Download der Aktualisierung(en) anbieten, eventuell in Kombination mit 2 teilautomatisiert (Versionsprüfung)

          Ja das sollte so sein! Ich denke die Javascriptloesung für den Cache ist wirklich am effektivsten zu realisieren. Bei Mozilla kann man ja einstellen das ein Bookmark automatisch geöffnet wird wenn Änderungen in der Page stattfanden und prompt rödelt das Preloading los :-)

          Das ganze könnte man dann später noch um die Option erweitern, dass das Script statt Preloading ein kleines Applet aufruft das die Files in einen lokalen Ordner synchronisiert (oder löscht). Mir grauts nur vor dem Java-Rechtemodell und den möglichen Sicherheitslücken die das dann wieder aufreißen könnte.

          Als Notnagel wirds dann immer ein regelmäßig geupdatetes Archivfile des kompletten Tutorials geben. Auf die Idee dieses Selbstentpackend zu gestalten bin ich noch gar nicht gekommen, das funtioniert aber nicht plattformübergreifend, oder?

          Tschau
            Rolf

          1. Hallo Rolf

            Nun von Deltazips bin ich momentan ganz abgekommen weil dann potenziell zu viele Artefakte übrig blieben. (siehe Diskussion mit Gerd)

            Was stören mich ein paar Dateileichen, die nicht mehr verlinkt sind?
            Die Aktualisierung kann auch eine Liste enthalten mit Seiten, die ich löschen kann, wenn ich Dateileichen verhindern will.

            Ja das sollte so sein! Ich denke die Javascriptloesung für den Cache ist wirklich am effektivsten zu realisieren. Bei Mozilla kann man ja einstellen das ein Bookmark automatisch geöffnet wird wenn Änderungen in der Page stattfanden und prompt rödelt das Preloading los :-)

            kein wirklicher Offlinebetrieb möglich.

            Mir grauts nur vor dem Java-Rechtemodell und den möglichen Sicherheitslücken die das dann wieder aufreißen könnte.

            ja ja

            Als Notnagel wirds dann immer ein regelmäßig geupdatetes Archivfile des kompletten Tutorials geben.

            Als Notnagel?
            Mir als Nutzer sind Angebote, mit denen ich regelmäßig arbeite und als Nachschlagewerke benutze (wie z.B. Selfhtml) als ZIP zur lokalen Istallation am liebsten.
            Warum?
            Ich nutze einen Zugang, bei dem ich nach Zeit bezahle und den IE.
            Bei einem Nachschlagewerk, dass ich lokal gespeichert habe, rufe ich  dieses auf, ohne dass der Browser auf den Gedanken kommt, ins Netz zu wollen. Alle Links innerhalb des Projekts funktionieren, ohne extra Offlinemodus anzugeben. Externe Links funktionieren auch, natürlich muss ich mich dann einloggen.

            Bei gecachten Seiten muss ich ins Netz gehen (auch wenn dann nicht alle Daten neu gezogen) werden, oder den Offlinemodus wählen. Im Offlinemodus wird nichts aktualisiert, also alle Seiten, die ich irgendwann einmal aufgerufen hatt, werden in der alten Version angezeigt, bei unbekannten Seiten, muss ich mich einloggen, warten, bis die Seiten geladen sind, dann das Netz Trennen - Offlinemodus wählen, um vernünftig weiterarbeiten zu können ohne stundenlang im Netz zu sein.

            z.B. bei diesem Forum sieht das also so aus:

            • Hauptdatei aufrufen (online)
            • interessante Threads, im neuen Fenster öffnen (jedesmal Offlinebleiben bestätigen)
            • dann online alle Fenster einzeln aktualisieren (auch jede Antwort)
            • Verbindung trennen, Offinebetrieb wählen
            • Thraeds in Ruhe lesen
            • eventuell offline Antwort schreiben
            • online gehen
            • Antwort absenden
            • das ganze von vorn

            Wenn ich mir jetzt vorstelle SELFHTML selbst wäre nicht lokal auf meiner Platte, oder es kämen regelmäßig kleine Änderungen oder Ergänzugen, zu denen ich mir alles komplett neu herunterladen müsste, furchbar.

            Auf die Idee dieses Selbstentpackend zu gestalten bin ich noch gar nicht gekommen, das funtioniert aber nicht plattformübergreifend, oder?

            Ups, daran hatte ich dabei gar nicht gedacht.

            Ich habe auch schon probiert, mir die Feature-Artikel Offline verfügbar zu machen. Jede Aktualisiereung dauert wesentlich länger, als die Seiten, die ich gerade lesen will, schnell normal aufzuraufen und damit in den Cache zu laden. Außerdem habe ich das Gefühl, als wenn normal aufgerufenen Seiten länger offline verfügbar bleiben, als "Offline verfügbar" gemachte, ohne die Synchronisation zu fahren.

            Seiten, die über "Seite speichern" auf die locale Platte gezogen werden, funktionieren keine Links mehr.

            MFG
            Detlef

            --
            - Wissen ist gut
            - Können ist besser
            - aber das Beste und Interessanteste ist Weg dahin!
            1. Hallo Detlef

              Antwort 1. Teil weil ich schnell weg muß ...

              Was stören mich ein paar Dateileichen, die nicht mehr verlinkt sind?
              Die Aktualisierung kann auch eine Liste enthalten mit Seiten, die ich löschen kann, wenn ich Dateileichen verhindern will.

              Naja ich hätte gerne Fehlerquellen ausgeschlossen. Wenn
              ich z.B. künftig einen Uploadbereich für die studis einrichte und Dateien wieder gelöscht werden siollten sie auch nicht liegenbleiben...

              Ja das sollte so sein! Ich denke die Javascriptloesung für den Cache ist wirklich am effektivsten zu realisieren. Bei Mozilla kann man ja einstellen das ein Bookmark automatisch geöffnet wird wenn Änderungen in der Page stattfanden und prompt rödelt das Preloading los :-)

              kein wirklicher Offlinebetrieb möglich.

              Wieso? Wenn man online synchonisiert hat sollte die Site konsistent sein (sofern Cache ausreichend groß)

              Mir als Nutzer sind Angebote, mit denen ich regelmäßig arbeite und als Nachschlagewerke benutze (wie z.B. Selfhtml) als ZIP zur lokalen Istallation am liebsten.

              Klar da gibts aber keine 3 Updates pro Woche...

              Warum?
              Ich nutze einen Zugang, bei dem ich nach Zeit bezahle und den IE.

              Ja die meisten Studis auch (wenn überhaupt)

              Bei einem Nachschlagewerk, dass ich lokal gespeichert habe, rufe ich  dieses auf, ohne dass der Browser auf den Gedanken kommt, ins Netz zu wollen. Alle Links innerhalb des Projekts funktionieren, ohne extra Offlinemodus anzugeben. Externe Links funktionieren auch, natürlich muss ich mich dann einloggen.

              So what wenn der Browser ins Netz will kann man entscheiden ob man a) Online geht, b) synchronisieren will oder  c) offline arbeitet.

              Bei gecachten Seiten muss ich ins Netz gehen (auch wenn dann nicht alle Daten neu gezogen) werden, oder den Offlinemodus wählen. Im Offlinemodus wird nichts aktualisiert, also alle Seiten, die ich irgendwann einmal aufgerufen hatt, werden in der alten Version angezeigt, bei unbekannten Seiten, muss ich mich einloggen, warten, bis die Seiten geladen sind, dann das Netz Trennen - Offlinemodus wählen, um vernünftig weiterarbeiten zu können ohne stundenlang im Netz zu sein.

              Stunden darf die Synchronisierung nicht dauern und die Leute können konfigurieren welche Daten sie haben wollen
              (nicht jeder braucht eine PS und eine PDF-version der Unterlagen)

              ----- CUT -----      Fortsezung folgt ...;-)

              Gruß
                Rolf

              1. Hallo Rolf

                Naja ich hätte gerne Fehlerquellen ausgeschlossen. Wenn
                ich z.B. künftig einen Uploadbereich für die studis einrichte und Dateien wieder gelöscht werden siollten sie auch nicht liegenbleiben...

                Sollen die studis deine Tutorials wieder hochladen?
                Dateileichen bezog sich doch auf eventuell gelöschte Tutorials.
                Es wäre vielleicht ein bischen gute Organisation nötig, statt unaktuelle Seiten zu löschen, neue unter dem Namen der alten anzubieten. Sollen die Inhalte alter Seiten unbedingt vom Rechner der studis verschwinden, könnte mit einer leeren Datei unter dem entsprechendn Namen geupdatet werden.

                Wieso? Wenn man online synchonisiert hat sollte die Site konsistent sein (sofern Cache ausreichend groß)

                Also bei mir nicht :-(
                Meine Versuche, mir Dateien offline verfügbar zu machen kamen zu folgenden Ergebnissen.
                Wenn ich "Offline Betrieb" wähle, sind fast alle Seiten, eine halbe Ewigkeit verfügbar, wärend später synchronisierte Offline Seiten ohne neue Synchronisation nicht mehr angezeigt werden.
                Eine Synchronisation dauert jedesmal so lange, dass ich das Gefühl habe, es werden wirklich _alle_ Seiten komplett neu geladen.

                Klar da gibts aber keine 3 Updates pro Woche...

                3 mal pro woche eine kleine ZIP-Datei laden und Auspacken sehe ich nicht als Problem an.

                So what wenn der Browser ins Netz will kann man entscheiden ob man a) Online geht, b) synchronisieren will oder  c) offline arbeitet.

                Genau!
                Sage ich:
                a) Online gehen - kann ich das Angebot ganz normal online Nutzen (kein extra Update nötig, der Browser holt sich, was er braucht)
                b) synchronisieren - nur diese Seite, das macht er sonst online auch
                                   - alles, dann braucht er ewig (siehe oben)
                c) offline arbeiten, funktioniert, aber ich bekomme keine Info, ob oder was sich eventuell geändert hat

                Stunden darf die Synchronisierung nicht dauern

                Stundenlang bezog sich nicht aufs Synchronisieren, sondern darauf, z.B. im Forum zu lesen, ohne die Seiten schnell duchzuklicken, um sie dann offline zu gehen.

                und die Leute können konfigurieren welche Daten sie haben wollen

                Woher wissen Sie, welche Dateien sie haben wollen, wenn du automatisch aktualisieren willst. Du müsstest ihnen also eine Liste liefern, mit den Hinweisen, welche Dateien hinzugekommen sind, damit sie diese dann zu den Favoriten (mit "Offline verfügbar machen") hinzugefügt werden können bzw. welche aus den Favoriten gelöscht werden sollen.

                Meine Vorstellung:

                1. komplettes Online-Angebot,
                dort Hinweis auf die Downloadmöglichkeit der zur Zeit aktuellen Version als ZIP (eventuell mehrere (PS, PDF ...)

                2. Offline-Version bzw. Versionen (PS, PDF ...)
                Die Startseite enthält gut sichtbar

                • das letzte Aktualisierungsdatum,
                • die Information, in welchen Abständen üblicherweise Aktualisierungen erscheinen und
                • einen Link auf deine Downloadseite (eventull separat für PS, PDF ...)
                  Dort befinden sich
                  der Link zum kompletten Download (für jemanden, der ewig nicht mehr aktualisiert hat)
                  und
                  die letzten Aktualisierungen auch als Link zum Download, jeweils mit dem Datum, welches auf der Startseite der Offlineversion dann auch angezeigt würde.
                  Der User sieht also, ob er aktuell ist, oder er ein Update oder eventuell sogar mehrere ziehen muss.
                  Wenn er die ZIP-Dateien dann entpackt hat, enthält seine (neue) Startseite das Datum des aktuellsten Updates.
                  Je nach dem, wie umfangreich die Aktualisierungen sind, könnte das ZIP-Archiv auch mehrere der letzten Aktualisierungen enthalten. (Kompromis zwischen Downloadvolumen und Einfachheit für den User)

                Dies könnte auch noch etwas automatisiert werden, beim Aufruf der Updateseite wird die Version des Nutzers als Parameter mitgeliefert, die dann Serverseitig ausgewertet wird. Dann enthielte die Downloadseite nur die für den Nutzer sinnvollen, Aktualisierung(en).

                oder (schlechtere Variante)
                Die Downloadseite enthält ein JavaScript, dass die für den jeweiligen Nutzer unsinnigen Links ausblendet.

                Nur meine Gedanken dazu, natürlich nicht getestet

                MFG
                Detlef

                --
                - Wissen ist gut
                - Können ist besser
                - aber das Beste und Interessanteste ist Weg dahin!
                1. Hi Detlef

                  Sollen die studis deine Tutorials wieder hochladen?

                  Nein, bei Seminaren oder Gruppenarbeit kann es zu uploads kommen. Auch habe ich ein Forum das offlinefähig ist, in dem auch mal was gelöscht wird. Auch kann ich nicht ausschließen das Dozenten die Hälfte ihrer Unterlagen über den Haufen schmeißen udn umbenennen... etc, etc.

                  Sollen die Inhalte alter Seiten unbedingt vom Rechner der studis verschwinden, könnte mit einer leeren Datei unter dem entsprechendn Namen geupdatet werden.

                  Ja das wäre tatsächlich ein Workaround!

                  Wieso? Wenn man online synchonisiert hat sollte die Site konsistent sein (sofern Cache ausreichend groß)

                  Also bei mir nicht :-(
                  Meine Versuche, mir Dateien offline verfügbar zu machen kamen zu folgenden Ergebnissen.
                  Wenn ich "Offline Betrieb" wähle, sind fast alle Seiten, eine halbe Ewigkeit verfügbar, wärend später synchronisierte Offline Seiten ohne neue Synchronisation nicht mehr angezeigt werden.

                  Verstehe ich richtig, je später eine Synchronisation im IE erfolgt desto kürzer die Vorhaltezeit???

                  Eine Synchronisation dauert jedesmal so lange, dass ich das Gefühl habe, es werden wirklich _alle_ Seiten komplett neu geladen.

                  Ja habe ähnliche Erfahrungen gemacht, aber ich tendiere sowieso zu einer JS-Preloading-Lösung. Bei einer Synchronisation mit Linkverfolgung solltest du drauf achten ob eventuell Links aus der Site heraus verfolgt werden.

                  Kleiner Tip: "wget" ausprobieren, damit kannst du viel besser granulieren was du gerne downloaden möchtest!

                  Klar da gibts aber keine 3 Updates pro Woche...

                  3 mal pro woche eine kleine ZIP-Datei laden und Auspacken sehe ich nicht als Problem an.

                  Naja. Menschen sind faul, jeder notwendige Handschlag  halbiert die Zahl der Nutzer. Und wenn jemand 2 Wochen weg war muß er 6 Zips downloaden und in den richtigen Pfad entpacken...

                  So what wenn der Browser ins Netz will kann man entscheiden ob man a) Online geht, b) synchronisieren will oder  c) offline arbeitet.

                  Genau!
                  Sage ich:
                  a) Online gehen - kann ich das Angebot ganz normal online Nutzen (kein extra Update nötig, der Browser holt sich, was er braucht)
                  b) synchronisieren - nur diese Seite, das macht er sonst online auch
                                     - alles, dann braucht er ewig (siehe oben)
                  c) offline arbeiten, funktioniert, aber ich bekomme keine Info, ob oder was sich eventuell geändert hat

                  nun ich meinte das  JS-Preloading das nur neue Dateien "synchronisiert" (also aufruft sodaß sie im Cache landen)

                  und die Leute können konfigurieren welche Daten sie haben wollen

                  Woher wissen Sie, welche Dateien sie haben wollen, wenn du automatisch aktualisieren willst. Du müsstest ihnen also eine Liste liefern, mit den Hinweisen, welche Dateien hinzugekommen sind, damit sie diese dann zu den Favoriten (mit "Offline verfügbar machen") hinzugefügt werden können bzw. welche aus den Favoriten gelöscht werden sollen.

                  Nein, nein bei einem JS-preloading sollen die Leute z.B. per Cookie konfigurieren ob sie alle Dateien (PDF,PS,...)
                  und/oder  alle Teilbaueme updaten wollen (z.B kein Forum).

                  Meine Vorstellung:

                  1. komplettes Online-Angebot,
                    dort Hinweis auf die Downloadmöglichkeit der zur Zeit aktuellen Version als ZIP (eventuell mehrere (PS, PDF ...)

                  D'accord!

                  1. Offline-Version bzw. Versionen (PS, PDF ...)
                    Die Startseite enthält gut sichtbar
                  • das letzte Aktualisierungsdatum,
                  • die Information, in welchen Abständen üblicherweise Aktualisierungen erscheinen und
                  • einen Link auf deine Downloadseite (eventull separat für PS, PDF ...)
                    Dort befinden sich
                    der Link zum kompletten Download (für jemanden, der ewig nicht mehr aktualisiert hat)

                  Kopmplettzips sind unkompliziert zu bewerkstelligen bei den Deltazips sehe ich ne schlechte Kosten/Nutze(n/r) -Relation.

                  Dies könnte auch noch etwas automatisiert werden, beim Aufruf der Updateseite wird die Version des Nutzers als Parameter mitgeliefert, die dann Serverseitig ausgewertet wird. Dann enthielte die Downloadseite nur die für den Nutzer sinnvollen, Aktualisierung(en).

                  Das mache ich mit JS, da ich Serverseitig nichts einstellen darf! Ich finds so auch effektiver bei Angeboten die Offline funktionieren sollen primär mit Clientside Technologien zu arbeiten udn Serverside nur  zu nutzen wenns unvermeidlich ist.

                  oder (schlechtere Variante)
                  Die Downloadseite enthält ein JavaScript, dass die für den jeweiligen Nutzer unsinnigen Links ausblendet.

                  Und auf Wunsch nur die "sinnvollen" oder alle oder ganz bestimmte preloaded :)

                  Schau, meine Site schwankt nur zwischen <0,5 (nur HTML) und schlimstenfalls 20 MB (mit allen PDFs und PS-Files), Und viele Leute haben per Default Caches >500 MB!!! Sollte wirklich mal was rausfallen wird halt komplett upgedated. Wer das Angebot wirklich intensiv nutzt installiert sich auch gerne einen zwoten exklusiven Browser damit der Cache clean bleibt.

                  Cache hat den großen Vorteil das im Gegensatz zum ZIP
                  absolute Links unverändert funktionieren. Wenn du z.B.  von einem lokalen Selfhtml-Download zu einem lokalen Featureartikel-Download navigieren willst, müßtest du manuell den absoluten Link zum teamone-Server umschreiben. Beim Cache wäre das transparent.

                  Mir kommt da auch grade eine gewagte Idee, wenn ich im Offline betrieb zusätzlich alle Seiten per "JS-Preloading" durchlaufen lasse dürfte die Löschpriorität jedesmal minimiert werden, sodaß die Seiten länger im Cache bleiben. Gleich mal testen ...:-)

                  (Fragt sich nur wie man per JS erkennt ob man gerade on oder offline ist ??? ... Eventuell über einen vergleich der Uhrzeit mit der Auslieferungszeit der Seite vom Server)

                  Tschau
                    Rolf

                  PS: Und Danke für die gute Diskussion :-)

                  1. Hallo Rolf!

                    Verstehe ich richtig, je später eine Synchronisation im IE erfolgt desto kürzer die Vorhaltezeit???

                    Nein, meine Erfahrung sagt:
                    Normal aufgerufenen Seiten bleiben offline verfügbar, solange sie noch im Cache sind.
                    "Offline verfügbar" gemachte Seiten werden ohne erneute Synchronisation nicht mehr angezeigt, obwohl ältere, normal aufgerufene Seiten noch im Cache sind und angezeigt werden.
                    Ich glaube, die eingebauten Kontrollen, die die Aktualität von "Offline Webseiten" erhalten sollen, übertreiben maßlos.

                    Diese Erfahrung sagt mir,
                    der Versuch, Seiten mittels "Offline verfügbar machen" zu erhalten, bringt nicht viel.

                    MFG
                    Detlef

                    --
                    - Wissen ist gut
                    - Können ist besser
                    - aber das Beste und Interessanteste ist Weg dahin!
                    1. Hi Detlef

                      "Offline verfügbar" gemachte Seiten werden ohne erneute Synchronisation nicht mehr angezeigt, obwohl ältere, normal aufgerufene Seiten noch im Cache sind und angezeigt werden.

                      Hmm das heißt wenn ich zwischen zwei offlinesessions
                      online gehe muß ich jedesmal "Extras->Synchronisieren" anstoßen, seis manuell durch klicken oder automatisch
                      im Bookmarkmenue? Und dann versucht der IE wahrscheinlich auch alles neuzuladen?

                      Doll! :-(

                      Cheers
                        Rolf

                      1. Hallo Rolf,

                        ich glaube, wir reden jetzt langsam aneinander vorbei. Vieleicht habe ich mich auch missverständlich ausgedrückt.

                        Beim IE 6.0, zumindest bei meinem, habe ich folgende Erfahrung gemacht:

                        1. Seiten, die ich ganz normal online besucht habe

                        Wenn ich im Menü "Datei" "Offlinebetrieb" wähle, kann ich diese Seiten praktisch solange aufrufen, ohne ins Netz zu gehen, wie diese im Cache (Temporary Internet Files) sind. Dabei ist es völlig egal, ob ich diese gebookmark habe oder nicht.
                        Sobald "Offlinebetrieb" nicht gewählt ist, will der IE ins Netz.

                        2. Seiten, die zu den Favoriten hinzugefügt wurden, _mit_ der Auswahl "Online verfügbar machen"

                        Für diese Seiten wird ein Synchronisationsmechanismus aktiviert. Dadurch werden diese Seiten nach einer gewissen Zeit ungültig gesetzt, obwohl diese noch im Cache sein müssten.
                        Diese Seiten muss ich also regelmäßig (Tage oder Wochen) synchronisieren, wobei dieses dann ewig dauert.

                        Aus diesem Grund setze ich also keine Seiten auf "Online verfügbar machen", sondern füge sie ganz normal zu den Favoriten hinzu. Wenn sie dann nach längerer Zeit beim "Offlinebetrieb" blass erscheinen, muss ich sie eben mal wieder online aufrufen.

                        Meine Gedanken zu deinem Problem (ohne ZIP-Download):

                        • auf den Synchronisationsmechanismus des Browsers verzichten
                        • die Startseite erhält ein Verfallsdatum
                        • JavaScript, prüft dieses beim Aufruf
                        • ist dieses erreicht, wird eine Seite, dessen Name das aktuelle Datum enthält aufgerufen (z.B. rolf031214.html)
                        • diese kann noch nicht im Cache sein, also verlangt der Browser den Onlinebtrieb
                        • wird die Seite dann geladen, ruft ein JavaScript dieser Seite nacheinander alle geänderten Dateien auf
                        • nach Abschluss dieses Vorganges wird eine Meldung ausgegeben, dass die Internetverbindung getrennt und in den "Offlinebetrieb" gewechselt werden kann
                        • eventuell werden anschließend die restlichen Dateien aufgerufen, damit diese länger im Cache bleiben

                        Inwieweit dies wirklich durchführbar ist, bzw. welche Probleme sich dabei vielleicht noch auftun werden, kann ich dir leider nicht sagen.
                        Dies sind alles Überlegungen zum grundsätzlichen Ablauf, ohne genauen Aufbau der Scripte, der Datenarrays usw..
                        Dabei müsste auch getestet werden, ob diese Scripte dann eventuell auch nicht schneller sind, als die browsereigene Synchronisationsfunktion.

                        MFG
                        Detlef

                        --
                        - Wissen ist gut
                        - Können ist besser
                        - aber das Beste und Interessanteste ist Weg dahin!
                        1. Hi Detlef

                          Diese Seiten muss ich also regelmäßig (Tage oder Wochen) synchronisieren, wobei dieses dann ewig dauert.

                          Nein, ich habe dich leider richtig verstanden!

                          Aber Glück im Unglück, ich brauch für den IE keine Extrawurst
                          zu braten.

                          längerer Zeit beim "Offlinebetrieb" blass erscheinen, muss ich sie eben mal wieder online aufrufen.

                          "blass" ??? Wortspiel oder Feature?

                          Meine Gedanken zu deinem Problem (ohne ZIP-Download):

                          ... Ja die Sache mit dem Verfallsdatum hätte auch Vorteile!

                          Inwieweit dies wirklich durchführbar ist, bzw. welche Probleme sich dabei vielleicht noch auftun werden, kann ich dir leider nicht sagen.
                          Dies sind alles Überlegungen zum grundsätzlichen Ablauf, ohne genauen Aufbau der Scripte, der Datenarrays usw..

                          No Problem was JS anbelangt habe ich schon etwas KnowHow.

                          Kleines Konzept:

                          Grundsätzlich braucht man eine HTML-Page mit allen Links und jeweils Verionsdatum. Die Seite hätte bei deaktiviertem JS schon ihre Daseinsberechtigung as Sitemap.

                          Da JS auch bei älteren Browsern auf jedes Linkobjekt zugreifen kann (document.links), muß ich mir nur überlegen wie ich das Datum ablege, wahscheilich  im Text des Links in Klammern  (document.links[i].text für NN4 sonst DOM oder all) oder im "name" Attribut (document.links[i].name). Wahrscheinlich in beiden um auf Nummer sicher zugehen was die untershiedlichen JS-Dialekte anbelangt.

                          Wird die Seite dann aufgerufen kann optional im Suchstring konfiguriert werden, was geschehen soll (alles synchronisiseren, nur neue Seiten, bestimmte Dateien auslassen,...)

                          Ein Script am Ende der Seite läuft über alle Links und macht dann je nach Option ein Preloading, dass läuft dann in einem extra Frame am unteren Ende der Seite.

                          Es muß noch bedacht werden dass keine neue Seite geladen werden sollte bevor die alte nicht komplett ist,
                          zu dem Problem findet sich aber bestimmt was im Archiv.
                          (ich dachte es gebe einen onComplete eventhandler kann ihn gerade aber nicht finden...)

                          Dabei müsste auch getestet werden, ob diese Scripte dann eventuell auch nicht schneller sind, als die browsereigene Synchronisationsfunktion.

                          Hm, getetstet müßte da noch einiges werden, z.B. auch ob Aufrufe einer Seite mit verschiedenen Suchstrings im Cache abgehandel werden, oder der Browser jedes mal den Server erreichen will. (glaube ich aber eher nicht)

                          Tschau
                            Rolf

                          PS: Sollten im Posting ab und zu Buchstaben fehlen liegt das an meiner neuen ALDI-Funktastatur. Sorry!

                          1. Hi

                            (ich dachte es gebe einen onComplete eventhandler kann ihn gerade aber nicht finden...)

                            Kein Wunder es heißt auch "onLoad"

                            Cheers
                              Rolf

                          2. Hallo Rolf!

                            "blass" ??? Wortspiel oder Feature?

                            Im aktuellen Betriebsmodus nicht verfügbare Favoriteneinträge werden grau statt schwarz, abgeblendet angezeigt, ähnlich wie nicht verfügbare Menüeinträge.

                            Grundsätzlich braucht man eine HTML-Page mit allen Links und jeweils Verionsdatum. Die Seite hätte bei deaktiviertem JS schon ihre Daseinsberechtigung as Sitemap.

                            Ich hatte an Arrays gedacht.
                            Bei deiner Version schlägst du aber gleich zwei Fliegen mit einer Klappe.

                            Da JS auch bei älteren Browsern auf jedes Linkobjekt zugreifen kann (document.links), muß ich mir nur überlegen wie ich das Datum ablege, wahscheilich  im Text des Links in Klammern  (document.links[i].text für NN4 sonst DOM oder all) oder im "name" Attribut (document.links[i].name). Wahrscheinlich in beiden um auf Nummer sicher zugehen was die untershiedlichen JS-Dialekte anbelangt.

                            Ich habe einmal versucht, ein als Text angegebenes Datum weiterzuverwenden und bin dann an einem NN (weiß nicht mehr welcher) gescheitert. Mittels "alert" wurde der String mit dem Datum, den ich aus dem Dokument gelesen hatte, wunderbar angezeigt. Wenn ich diesen String dann weiterverarbeiten wollte, funktionierte das in allen meinen Browsern ohne Probleme, nur der NN 4 oder 6 (oder alle beide?) lieferten nur leere Strings zurück. Ich habe die gemünschte Funktion dann bleiben lassen. (Dieses Forum kannte ich damals noch nicht.)

                            zu dem Problem findet sich aber bestimmt was im Archiv.
                            (ich dachte es gebe einen onComplete eventhandler kann ihn gerade aber nicht finden...)

                            Bei fertig geladener Seite wird onload aufgerufen, imho aber ohne Rücksicht darauf, ob Grafiken usw. auch schon komplett sind.

                            Hm, getetstet müßte da noch einiges werden, z.B. auch ob Aufrufe einer Seite mit verschiedenen Suchstrings im Cache abgehandel werden, oder der Browser jedes mal den Server erreichen will. (glaube ich aber eher nicht)

                            ich schon, kanns aber nicht beschwören

                            Du könntest eventuell das Datum des letzten Preloadings beim User speichern und dann dieses mit dem jeweiligen Versionsdatum (von der Sitemap) vergleichen. Dann kannst du die Seiten ganz normal ohne Suchstrings aufrufen.

                            MFG
                            Detlef

                            --
                            - Wissen ist gut
                            - Können ist besser
                            - aber das Beste und Interessanteste ist Weg dahin!
                            1. Hi Detlef

                              Im aktuellen Betriebsmodus nicht verfügbare Favoriteneinträge werden grau statt schwarz, abgeblendet angezeigt, ähnlich wie nicht verfügbare Menüeinträge.

                              Ach das meintest Du.

                              Bei deiner Version schlägst du aber gleich zwei Fliegen mit einer Klappe.

                              Ein anderer Vorteil wäre das man ein generisches Skript schreiben könnte das sich rekursiv durch beliebige Seiten arbeitet und die Links verfolgt bis zu einer gewünschten Tiefe.

                              Sowas könnte man wohl sogar in ein Bookmarklet packen und bei beliebigen Fremdsites auszunutzen. Ich hatte schon mal sowas ähnliches als BML was mir erlaubte alle neuen Folgepostings eines beliebigen Posts hier im Forum prezuloaden.

                              (Aber mittlerweile gibst ja hier allerlei neue Features
                              die das überflüssig machen, vielleicht sollte ich sie auch mal aktivieren... >;-)

                              Ich habe einmal versucht, ein als Text angegebenes Datum weiterzuverwenden und bin dann an einem NN (weiß nicht mehr welcher) gescheitert.

                              In Selfhtml 8.0 ist IMHO ein Hinweis auf dieses Problem, manche NN4 wollen die Jahreszahl zweistellig.

                              Bei fertig geladener Seite wird onload aufgerufen, imho aber ohne Rücksicht darauf, ob Grafiken usw. auch schon komplett sind.

                              Schlimmstenfalls werden die Grafiken mitgecheckt. (auch mittels onLoad)

                              Tragischer wären nicht geladene JS-Dateien...

                              Du könntest eventuell das Datum des letzten Preloadings beim User speichern und dann dieses mit dem jeweiligen Versionsdatum (von der Sitemap) vergleichen.

                              Ja, hatte ich sowieso mit Cookies vor.

                              Dann kannst du die Seiten ganz normal ohne Suchstrings aufrufen.

                              Suchstrings braucht man immer wieder auch offline, z.B zum Aufruf eine JS-Suchmaschine mit Parameterübergabe.

                              Worstcase wäre dann den Suchstring anders zu tunneln (z.B. als Hashquery) und per JS auszuwerten.

                              Tschau
                                Rolf

  2. Hallo

    Ansatz 2: Dynamisches Preloading per Javascript
     Ein Cookie speichert das Datum des letzten besuches und ein staendig aktualisiertes
     JS laedt alle neuen Pages in ein extra Window/Frame sodaB sie gecachet werden.
       Problem: 1. Ist das Cahche zu klein oder wird viel gesurft kann es passieren
         das alte unveraenderte Seiten aus dem Chache rausfallen.

    Problem 2 hast du ganz vergessen, was geschieht mit den Seiten die gelöscht wurden? Per Javascript bekommst du sie bestimmt nicht aus dem Cache!

    MfG
      Gerd

    1. Hallo Gerd

      Problem 2 hast du ganz vergessen, was geschieht mit den Seiten die gelöscht wurden? Per Javascript bekommst du sie bestimmt nicht aus dem Cache!

      Gelöschte Seiten noch im Cache zu haben wäre nicht weiter dramatisch da sie ja nicht mehr verlinkt wären und nach einiger Zeit von selbst rausfallen.

      Allerdings bei dem Ansatz 4 mit Delta-Zips zu arbeiten würden diese definitiv nie mehr gelöscht, das wäre viel häßlicher. Da trifft deine Kritik ins Schwarze!

      Man stelle sich vor es gäbe eine wöchentlich aktualisierte Version von Selfhtml und im lokalen Directorybaum spuken noch Pages von Version 6 herum...

      Tschau
        Rolf

  3. Moin!

    Dankbar fuer jeden Vorschlag!
      Rolf

    Ich weiss ja nicht, wie groß die Datenmenge ist...
    Falls es sich wirklich lohnt:

    Stelle den Besuchern ein Perl- Skript und eine Datei auf dem Server zur Verfügung, letztere beinhaltet, welche Version einer Datei auf dem Server aktuell vorliegt.

    Das Perl- Skript muss auf der Benutzerseite(!) laufen.

    • Es holt die o.g. Beschreibungsdatei ab (die kann z.B. mit einem einfachen ls erzeugt werden, wenn die Dateinamen die Version enthalten...)

    • Es listet die bereits "installierten" Dateien auf (und merkt sich diese...).

    • Es holt alle neueren Dateien (Das sind alle, die noch nicht auf der clientseite existieren)

    • Es löscht alle alten Dateien (Das sind die, die nicht mehr auf dem Server existieren)

    Ach so.  Es muss kein Perl- Skript sein. Eine Java- Anwendung, etwas kompiliertes oder eine andere Skriptsprache tut es auch. Ich habe Perl erwähnt, weil es auf praktisch allen Systemen läuft. (Nach Installation...)

    MFFG (Mit freundlich- friedfertigem Grinsen)

    fastix®

    --
    Als Freiberufler bin ich immer auf der Suche nach Aufträgen: Schulungen, Development. Auch  für seriöse Agenturen.
    1. Hi Fastix

      Ich denke wennschon Installation dann doch lieber gleich wget installieren lassen statt es selbst nachzuprogrammieren. die Links dich mittels rekursiven ls aufliste kommen in eine sitemap und wget wird mit linkverfolgung aufgerufen.

      http://studwww.ugent.be/~bpuype/wget/

      Wget hat IMHO auch ne option nur neue Files zu holen.
      Alte Dateien löschen weiß ich nicht, da käme Detlefs Vorschlag zum tragen gelöschte Dateien mit leeren zu ersetzen um Platz zu sparen.

      Wieso meinst du das Perl besser läuft als Java?
      Ein Applet würde keine Installationsprobleme mit sich führen nur das Rechtemodell müßte erweitert werden...

      Tschau
        Rolf

      1. Moin!

        Hi Fastix
        Wieso meinst du das Perl besser läuft als Java?

        Das habe ich nicht geschrieben. Ich habe lediglich eine Auswahl von Möglichkeiten in einer von mir preferierten Reihenfolge erwähnt, aber _keineswegs_ eine "besser <-> schlechter" - Wertung vorgenommen.

        wget

        Ja, bei wget besteht das Problem des Löschens. Ich persönlich halte aber die Idee mit der leeren Datei nicht für eine gute. Der Benutzer schaut ins Verzeichnis, findet die leeren Dateien und denkt: UPS! Da ging was schief, löscht alles, wiederholt den Download manuell, hat eine schlechte Meinung von der ganzen Angelegenheit -> Nichts gespart und tausen Rückfragen wegen der leeren Dateien. Was eine FAQ nützt, erlebst Du hier...

        MFFG (Mit freundlich- friedfertigem Grinsen)

        fastix®

        --
        Als Freiberufler bin ich immer auf der Suche nach Aufträgen: Schulungen, Development. Auch  für seriöse Agenturen.
        1. ReMoin! (& Hi Detlef)

          wget
          Ja, bei wget besteht das Problem des Löschens. Ich persönlich halte aber die Idee mit der leeren Datei nicht für eine gute. Der Benutzer schaut ins Verzeichnis, findet die leeren Dateien und denkt: UPS! Da ging was schief, löscht alles, wiederholt den Download manuell, hat eine schlechte Meinung von der ganzen Angelegenheit -> Nichts gespart und tausen Rückfragen wegen der leeren Dateien. Was eine FAQ nützt, erlebst Du hier...

          Da ist was dran allerdings hat liefert in seinem letzten Beitrag Detlef implizit die Loesung nicht einfach leere Dateien zu senden sondern diese mit der Information anzureichern dass man sie loeschen koenne.

          (wobei diese beim naechsten Download wieder erscheinen wuerden...)

          Ich denke wenn man eine Loesung mit eienr echten lokalen Kopie statt Cache will kommt man um eine Loesung nicht umhin die automatisch lokale Files loeschen kann. Ein Ansatz waere eine Java Loesung die als Applett liefe und jedesmal um die Previlegien bettelt oder eine erweiterung von wget das ja unter der GPL laeuft.

          Die JS Loesung die ich gerade angehe hat aber IMHO den besten Kosten-Nutzen Faktor weil ich schnell Ergebnisse erzielen kann...
          Etwas Tricky (Timing) ist es momentan zu ueberwachen ob eine Seite komplett geladen wurde, wenn nicht von vornherein ein onLoad vorhanden war.

          Tschau
            Rolf

          1. Hallo

            Etwas Tricky (Timing) ist es momentan zu ueberwachen ob eine Seite komplett geladen wurde, wenn nicht von vornherein ein onLoad vorhanden war.

            Du willst waehrend des Ladevorgangs einer Page dynamisch onload hinzufuegen bevor der Ladevorgang angeschlossen ist???

            Das ist m.E. schlichtweg nicht praktikabel werd realistisch!

            MfG
              Gerd

            1. Hi Gerd

              Du willst waehrend des Ladevorgangs einer Page dynamisch onload hinzufuegen bevor der Ladevorgang angeschlossen ist???

              Das ist m.E. schlichtweg nicht praktikabel werd realistisch!

              Also bei mir klappts (Mozilla, IE5.0), mit setInterval
              wird regelmäßig versucht onLoad im Zielfenster zu beschreiben, ist die Page fertig wird eine Funktion load_link() im ausführenden Fenster geladen (hier z.B.im Frame SYNCHRO)

              Leider kann ichs momentan nicht uploaden damit man's direkt testen kann.

              Fröhliche Weihnacht
                Rolf

              PS: Codesample:

              function setOnLoad() {
                if (ziel && ziel.document && !ziel.onload) {
                    protokoll+="setOnLoad:"+count+"\n";
                    try {
                    ziel.onLoad=window.parent.frames.SYNCHRO.load_link();
                    }
                    catch (e) {
                    protokoll+="FEHLER:"+e.description+"\n"
                    }
                }
                   count++;
              }

              function synchro(){
                       timer=setInterval("setOnLoad()",itv);
                       load_link();
              }

      2. Hallo Rolf

        Alte Dateien löschen weiß ich nicht, da käme Detlefs Vorschlag zum tragen gelöschte Dateien mit leeren zu ersetzen um Platz zu sparen.

        Der Vorschlag bezog sich nicht auf das Platzsparen, sondern darauf, wie bei einem ZIP-Dowload, abgesichert werden könnte, dass alte nicht mehr aktuelle Inhalte, sicher versteckt werden können, für den Fall, dass der User zu faul ist diese zu löschen.
        Dabei meinte ich eigentlich auch nicht wirklich leere Seiten, sondern eigentlich Seiten, deren einziger Inhalt ein Hinweis ist, dass diese Seite ungültig ist und gelöscht werden sollte.

        MFG
        Detlef

        --
        - Wissen ist gut
        - Können ist besser
        - aber das Beste und Interessanteste ist Weg dahin!