hotti: Demo-Version binary sequence in ajax Response

Beitrag lesen

Demo Array

Ich werd später noch was dazu schreiben, steht dann auf der Seite s.o.

Übertragen wird ein Array über xhr.responseType = 'arraybuffer';

Die Längenangaben habe ich mal auf 255 begrenzt, pack-Schablone "C" ist das und braucht 1 byte. Hier spielt die Byte-Order keine Rolle, auf meinen Kisten funktioniert ansonsten der Little-Endian mit pack-Schablone "V" (Vax, 32 Bit), ich weiß aber nicht, ob das überall so ist, deswegen bleibts ersteinmal bei 8 Bit, reicht ja auch in den meisten Fällen.

Sofern ein assoziatives Array übertragen werden soll, wäre nur der Lese-Algorithmus geringfügig zu ändern (Schlüssel-Werte-Paare).

Der Serializer

  
sub control{  
    my $self = shift;  
  
    use bytes; # important!!! Byte-Semantic  
    my @data = ('Preis', '99.99 €', 'Zahlart' , 'Bar');  
    foreach my $e(@data){  
        $self->{CONTENT} .= pack("C", length $e).$e;  
    }  
    $self->header("Content-Type" => "application/octet-stream");  
}  

schreibt abwechselnd Länge/Wert in die Bytesequenz. Der Response-Buffer wird dann sukzessive abgearbeitet.

Vielen Dank an Alle hier Beteiligte. Am Ende wirds eher einfach als kompliziert, es hängt nur am Algorithmus (siehe Quellcode).

Horst

PS: Das über Blob und FileReader-Zeugs hab ich mir mal angeschaut. Das ist genau das, was ich nicht haben wollte, weil da die Daten wieder mit textlichen Mitteln strukturiert sind.