hotti: Vom Winde verweht...

hi,

Mistwetter

Also, das ist nur ein Test, da gibts noch Einiges zu verbessern ;-)
Mit setInterval(), das gefällt mir ganz und gar nicht.

Vorschläge nehme ich gerne an...

Schönen Sonntag,
Rolf

  1. hi,

    Mistwetter

    Das ist nur ein Test, da gibts noch Einiges zu verbessern ;-)

    War natürlich Blödsinn, jedes Einzelbild mit Ajax zu holen ;-)

    Der Ablauf ist jetzt so:

    • Seite aufrufen, das erste Bild wird gezeigt (Lockvogel),
    • Beim Klick wird per Ajax ein Preload angefordert,
    • die Ajax-Response schreibt das Preload in ein Array (movie),
    • MAZ ab ;-)

    Und jetzt kommt erstmal die richtige Arbeit:
    Schönheitskosmetik, Fehlerbehandlung und der ganze Schei?.

    (movie) hat alle 18 Bilder [0]..[17] als HexMap. Base64 ist evntl. besser, braucht weniger Platz, hier ist noch Freiraum zum Testen.

    setInterval() hat einige Tücken. WA: Alle Prozessnummern in ein Array schreiben, damit setInterval() bei Bedarf gekillt werden kann und zwar gründlich *g.

    Für weitere Vorschläge dankbar,
    Rolf

    --
    Have a Cigar!
    1. setInterval() hat einige Tücken.

      Welche?

      WA: Alle Prozessnummern in ein Array schreiben, damit setInterval() bei Bedarf gekillt werden kann und zwar gründlich *g.

      Was heisst alle? du hast doch nur ein Interval am laufen.

      Was soll überhaupt gegen setInterval sprechen?
      setInterval kannst du auch eine Funktionsreferenz übergeben.
      Die Serverantwort kannst du auch mit JSON verpacken.

      1. hi,

        setInterval() hat einige Tücken.
        Welche?

        Ein Besucher könnte mehrere Intervalle starten...

        WA: Alle Prozessnummern in ein Array schreiben, damit setInterval() bei Bedarf gekillt werden kann und zwar gründlich *g.
        Was heisst alle? du hast doch nur ein Interval am laufen.

        Genau ;-)

        Die Serverantwort kannst du auch mit JSON verpacken.

        Wozu?

        Viele Grüße,
        Rolf

        --
        Wenn der Kommentar nicht zum Code passt, kann auch der Code falsch sein.
        1. Ein Besucher könnte mehrere Intervalle starten...
          Genau ;-)

          Was denn nun? kann er oder nicht? Soweit ich sehe nicht.

          Wozu?

          Du hast ein einheitliches Format, was sich Serverseitig schnell erzeugen lässt, weil es dafür fertige Funktionen gibt. Und du musst auch wenn du zusätzliche Daten übertragen willst nicht nochmal an den Trennzeichen rumspielen.

          1. moin,

            Was denn nun? kann er oder nicht? Soweit ich sehe nicht.

            window.setInterval(): mit Bedacht verwenden :-)

            Wozu?
            Du hast ein einheitliches Format, was sich Serverseitig schnell erzeugen lässt, weil es dafür fertige Funktionen gibt. Und du musst auch wenn du zusätzliche Daten übertragen willst nicht nochmal an den Trennzeichen rumspielen.

            zu JSON:
            im vorliegenden Fall habe ich ein Array() zum Speichern der Einzelbilder, das eignet sich dazu besser als ein Objekt().

            Json könnte ich natürlich auch verwenden, aber wenn ich zusätzliche Parameter übertragen will, kann ich das auch einfacher haben, es gibt ja auch noch andere RFCs http://rolfrost.de/cgi-bin/alib.cgi für einheitliche Formate.

            Der Json-Hack ist billig:
            http://rolfrost.de/cgi-bin/aary.cgi

            Bei eval() steckt der Teufel im Detail, das Detail sind die eckigen oder geschweiften Klammern, das ist der ganze 'Trick' der Umwandlung einer Ajax-Response in ein Object().

            Viele Grüße,
            Rolf

            1. moin, again

              (Kaffee dampft)

              Nochwas zum jason hype, also ich denke, ein Presentation Layer hat in der Übertragung und auch in einer Ajax Response nix verloren.

              Da laufen nur bits und bytes, und wenn das binär nicht geht, wird aus einer bitmap eben eine hexadezimale bitmap erstellt. Btw., binär ist in HTTP zulässig.

              Eine hexmap sieht so aus: %47%49%46 (die 3 Buchstaben GIF) und da ist es völlig egal, ob das Text ist oder eine Grafik oder ein pdf oder sonstwas. Ein hexmap ist us-ascii, braucht nur 7bit und in einer 8bit Umgebung hab ich da sogar noch ein Paritätsbit übrig.

              Server: ein hexmap zu erstellen ist keine Hexerei, das machen die Perlfunktionen unpack() und read() im Handumdrehen.

              DOM: unescape() macht aus einer hexmap die binary, und wenn das Text ist, ist es egal, ob der Text utf-8 oder iso- oder sonstwie zeichencodiert ist. unescape() ermöglicht die Trennung vom Presentationlayer, was bei decodeURI() resp. decodeURIComponent() nicht der Fall ist, da ist der nämlich eingebaut (RFC schießmichtot).

              URI::Escape macht aus Zeichen ein hexmap, nimmt jedoch davon ein paar Zeichen aus. Wenn ich mit meinen Daten nicht an einen URI gebunden bin, eine Ajaxresponse ist das ja auch nicht, kann ich alle Zeichen als hexmap schicken, fein säuberlich als %byte.

              Damit könnte ich mein eigenes Framework aufbauen, was zuverlässig funktioniert und die Tipparbeit auf ein Minimum reduziert, das Programmieren kann am Baggersee stattfinden und getippt wird in der Zeit zwischen T agesschau und w ettendass.

              Vielen Dank,
              viele Grüße,
              Horst Haselhuhn

            2. Hallo,

              window.setInterval(): mit Bedacht verwenden :-)

              Und wie meinst du das jetzt wieder?

              zu JSON:
              im vorliegenden Fall habe ich ein Array() zum Speichern der Einzelbilder, das eignet sich dazu besser als ein Objekt().

              Sicher, aber was hindert dich daran, ein Format zu nutzen, mit dem auch Objekte möglich sind? Was ist schlecht am JSON-Format?

              Json könnte ich natürlich auch verwenden, aber wenn ich zusätzliche Parameter übertragen will, kann ich das auch einfacher haben, es gibt ja auch noch andere RFCs http://rolfrost.de/cgi-bin/alib.cgi für einheitliche Formate.

              Natürlich, nur nicht beliebig strukturiert.

              Der Json-Hack ist billig:

              Ist das ein Nachteil?

              Bei eval() steckt der Teufel im Detail, das Detail sind die eckigen oder geschweiften Klammern, das ist der ganze 'Trick' der Umwandlung einer Ajax-Response in ein Object().

              Das ist die ganz normale JS-Notation, genau so wie man ein Objekt in JS schreiben würde.

              Nochwas zum jason hype, also ich denke, ein Presentation Layer hat in der Übertragung und auch in einer Ajax Response nix verloren.

              Das verstehe ich jetzt wieder nicht. Inwiefern hat das was mit dem Datenformat zu tun?

              DOM: unescape() macht aus einer hexmap die binary, und wenn das Text ist, ist es egal, ob der Text utf-8 oder iso- oder sonstwie zeichencodiert ist. unescape() ermöglicht die Trennung vom Presentationlayer, was bei decodeURI() resp. decodeURIComponent() nicht der Fall ist, da ist der nämlich eingebaut (RFC schießmichtot).

              https://developer.mozilla.org/en/Core_JavaScript_1.5_Guide/Predefined_Functions/escape_and_unescape_Functions

              Damit könnte ich mein eigenes Framework aufbauen, was zuverlässig funktioniert und die Tipparbeit auf ein Minimum reduziert

              Und mit JSON kannst du das nicht?

              1. hi,

                window.setInterval(): mit Bedacht verwenden :-)
                Und wie meinst du das jetzt wieder?

                Wenn dem User die Möglichkeit gegeben wird, mehrere Intervalle zu starten, musst Du bischen aufpassen, das ist alles.

                Sicher, aber was hindert dich daran, ein Format zu nutzen, mit dem auch Objekte möglich sind? Was ist schlecht am JSON-Format?

                Es ist und bleibt ein Workaround, das ist nicht mehr und nicht weniger. Schlecht vom Konzept her ist jedoch, dass der PresentationLayer mitgeschleppt wird, siehe meinen Post von heute morgen.

                Json mag ein hype sein, ist jedoch nicht alles. HTTP erlaubt nämlich auch das Übertragen von Binaries und da versagt json. Und Binaries übertragen heißt Bandbreite sparen und trennt den Ü-Layer strict vom Presentationlayer. Und da Ajax asynchron ist, kann ich Multipart Content auch einzeln anfordern. Ich muss die Responsen nur richtig zusammenbauen und dafür gibt es den Entity-Tag, den ETag. Das ist alles nichts Neues.

                Wie das geht, siehe hier. Und ob das geht!!!111!!!

                Das eröffnet ungeahnte Perspektiven. Ich frage mich nur, warum sich viele (?) so mit XML un JSON festfahren. Wenn Du ein richtiges Framework haben willst, dann nutze ajax so, wie es gedacht ist: Asynchron.

                Viele Grüße an Alle,
                Rolf

                1. Auch Hi,

                  Wenn dem User die Möglichkeit gegeben wird, mehrere Intervalle zu starten, musst Du bischen aufpassen, das ist alles.

                  Nicht mehr als bei einem.

                  Es ist und bleibt ein Workaround, das ist nicht mehr und nicht weniger.

                  Ein Workaround? Wofür? Ich übertrage Daten! Strukturiert bis Ultimo, nicht mehr und nicht weniger.

                  Schlecht vom Konzept her ist jedoch, dass der PresentationLayer mitgeschleppt wird, siehe meinen Post von heute morgen.

                  Welchen PresentationLayer?

                  HTTP erlaubt nämlich auch das Übertragen von Binaries und da versagt json.

                  Ja, jede Grafik ist ein Binär.

                  Und Binaries übertragen heißt Bandbreite sparen und trennt den Ü-Layer strict vom Presentationlayer.

                  Nur kann JS nichts mit Binärdaten anfangen, sonst kann man die auch mit JSON kodieren.

                  Und da Ajax asynchron ist, kann ich Multipart Content auch einzeln anfordern.

                  Was hat das mit JSON zu tun?

                  Wenn Du ein richtiges Framework haben willst, dann nutze ajax so, wie es gedacht ist: Asynchron.

                  Nochmal, was hat das mit JSON zu tun?

  2. Hi Hotti Rolf,

    ehrlich gesagt - ich habe keine Lust dein

    Mistwetter

    zu entwanzen.....

    ...  aber die Funktion ...

    Also, das ist nur ein Test, da gibts noch Einiges zu verbessern ;-)
    Mit setInterval(), das gefällt mir ganz und gar nicht.

    ... setInterval() lässt vermuten, dass du nach Möglichkeiten
    einer Rekusion sucht. Unten findest du ein ...

    Sorry an alle, die mir geglaubt haben ich würde mich vom Acker machen!

    Prof. Sakkkkarre

      
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">  
    <html>  
    <!-- bitte bei Fehlern nur JS korrigieren - das HTML ist nur schnell  
    zusammengepanscht --->  
    <head>  
      <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">  
    </head>  
    <body>  
    <p>  
      Hallo Welt  
    </p>  
      
    <SCRIPT Type="text/javascript" LANGUAGE="JavaScript">  
    <!--  
      
      function rekursion()  
      {  
        alert('hier gehts rund ... ');  
        /* 5000 entspricht 5 Sek */  
        / genug Zeit zum Abbrechen des Scripts ... */  
        window.setTimeout('rekursion()', 5000);  
      }  
      
      rekursion();  
      
    //-->  
    </SCRIPT>  
      
    </body>  
      
    <html>  
    
    
    1. <!-- bitte bei Fehlern nur JS korrigieren - das HTML ist nur schnell
      zusammengepanscht --->

      <body>

      <SCRIPT Type="text/javascript" LANGUAGE="JavaScript">

      language-Attribut ist überflüssig bis falsch

      besser wäre es grundsätzlich, den Scriptbereich in den head bzw. externe Datei auszulagern.

      <!--

      Kommentarzeile ist überflüssig

      function rekursion()
        {
          alert('hier gehts rund ... ');
          /* 5000 entspricht 5 Sek */
          / genug Zeit zum Abbrechen des Scripts ... */
          window.setTimeout('rekursion()', 5000);
        }

      rekursion();

      //-->

      s.o.

      </SCRIPT>
      </body>
      <html>