Array in Ajax-Response und eval im DOM

Mit der DOM-Funktion eval() ist es möglich, eine Zeichenkette in eine JavaScript-gerechte Struktur zu verwandeln, betrachte untenstehenden String:

print qw(["Otto", "Anna", "Fritz"]); # Ajax Response

Entscheidend dafür, dass dies eval() zu einem Array evaluiert, sind die eckigen Klammern am Anfang und am Ende der Zeichenkette. Zum Testen bitte die Schaltfläche klicken, JS muss aktiviert sein.

Datenübertragung im Presentation Layer (JSON)

Das Prinzip siehe obenstehend. Einen Schritt weiter gegangen, mit geschweiften Klammern {} also, lassen sich auf diese Art und Weise auch komplexere Datenstukturen übertragen, im DOM wird damit ein Objekt erzeugt (JSON, eval). Wer diese Möglichkeit nutzt, sollte sich jedoch der Tatsache bewusst sein, dass diese nicht dem OSI-Referenzmodell entspricht, was eine Übertragung auf Bitebene (Layer 1) empfiehlt.

Eine Datenübertragung nach JSON ist vergleichsweise wie eine Übertragung einer Textdatei, die erst ausgedruckt, dann per Kurier oder Fax verschickt und empfangsseitig wieder eingescannt wird.

Bei einem Datentransfer im Layer 1 hingegegen, werden nur Bits und bytes übertragen im Sinne des OSI-Schichtenmodells, wobei der Empfänger nicht darauf angewiesen ist, eine Struktur anhand der Übertragung im Presentation-Layer zu erkennen, sondern diesen Layer protokollgemäß wiederherstellt. Für eine Übertragung von Binärdaten ist JSON von vornherein ungeeignet oder zumindest sehr umständlich zu handhaben.

Last-Modified: Tue, 22 Jun 2010 19:50:15 GMT