Tach!
Meine Methode liefert eine universelle und komplette Datenstruktur, FormData hat keine solche Methode.
for (let pair of formData) { console.log(pair[0], pair[1]); }
Liefert die Daten vollständig und komplett.
Das mag sein, aber das ist ja noch keine Datenstruktur! Und auf die Daten zugreifen geht, wie mein CODE zeigt, auch mit Methoden des DOM, das braucht FormData nicht.
Aus meiner Datenstruktur kann ich beliebige Enctypes erzeugen, z.B.
application/json
oderapplication/x-www-form-urlencoded
oder custom.Ist das eine Besonderheit, die mit anderen Datenstrukturen nicht zu erreichen ist?
Keine Besonderheit. Es ist eine Frage der Zweckmäßigkeit, welche Struktur man aufsetzt. Also auch, wie man eine bestimmte Datensruktur möglichst zweckmäßig serialisiert für den Transport oder die Speicherung.
Vielleicht möchten wir ja nocheinmal über den Sinn von Schichtenmodellen reden!?
Wozu? Hat mit dem Thema nichts zu tun, wir verbleiben doch die ganze Zeit in derselben Schicht, wenn du nicht grad wieder unnötige Abschweifungen hinlegst.
Doch hat es. Zu Frage der Zeckmäßigkeit kommen Fragen der Wartungsfreundlichkeit, Erweiterbarkeit, Transparenz, Performance und Skalierbarkeit -- auf die eben nur ein Schichtenmodell die besten Antworten geben kann.
Genau deswegen reden wir vom Transport~, DataAcccess~ und anderen Layers. du hast doch einmal selbst den Begriff Monolith
für Bytesequenz verwendet der im Transportlayer anzusiedeln ist. Andererseits beschreibt ein abstrakter Datentyp Methoden für den wahlfreien Zugriff (Random Access) und ein Serializer vermittelt zwischen diesen Schichten.
Wenn man unmittelbar aus dem <form> einen bestimmten Enctype erstellt, geht das freilich auch fernab jeglicher Schichtenmodelle.
Aber spätestens dann, wenn aus derselben Quelle ein anderer Enctype gefordert wird, freut man sich doch daß man die ganzen Daten für den wahlfreien Zugriff schon hat und nur einen anderen Serializer braucht.
Du siehst also, <form>-Serialize kommt an einem Schichtenmodell gar nicht vorbei. Also wenn wir schon einen Ersatz für jquery.serialize bauen, dann sicher doch auf einem soliden Fundament!
Dafür sind wir Programmierer.