Braucht noch wer jQuery? – SELFHTML-Forum Forum als Ergänzung zum SELFHTML-Wiki und zur Dokumentation SELFHTML https://forum.selfhtml.org/self Braucht noch wer jQuery? Fri, 20 Jul 18 10:37:07 Z https://forum.selfhtml.org/self/2018/jul/20/braucht-noch-wer-jquery/1726928#m1726928 https://forum.selfhtml.org/self/2018/jul/20/braucht-noch-wer-jquery/1726928#m1726928 <p>Moin,</p> <p>hier im Forum ist ja schon immer wieder über die Verwendung, das Pro und Kontra zu <strong>jQuery</strong> diskutiert worden. Die Meinung mancher Forumsteilnehmer (mir eingeschlossen), dass man oftmals jQuery durch <a href="http://www.vanilla-js.com/" rel="nofollow noopener noreferrer"><strong>Vanilla JS</strong></a> ersetzen kann, wird anscheinend <a href="https://www.heise.de/developer/meldung/JavaScript-jQuery-wird-in-Ember-3-3-nicht-mehr-benoetigt-4116424.html" rel="nofollow noopener noreferrer">auch von größeren Projekten geteilt</a>.</p> <p>Neben <a href="https://forum.selfhtml.org/m1726468" rel="noopener noreferrer">CSS als neuem JavaScript</a> wird das wohl <em>das nächste große Ding</em>.</p> <p>Viele Grüße<br> Robert</p> Braucht noch wer jQuery? Fri, 20 Jul 18 11:35:49 Z https://forum.selfhtml.org/self/2018/jul/20/braucht-noch-wer-jquery/1726929#m1726929 https://forum.selfhtml.org/self/2018/jul/20/braucht-noch-wer-jquery/1726929#m1726929 <p>Hallo Robert,</p> <p>ich mag es eigentlich ganz gerne, weil es einige Dinge schön kompakt macht. Vor allem dann, wenn man auch noch den IE supporten muss. Und da meine App im Intranet läuft, ist mir der Datenoverhead ziemlich schnuppe.</p> <p>Ich renoviere gerade eine seit ASP.NET 1.x gewachsene Web-Anwendung als SPA, und habe da auf requireJS und jQuery aufgesetzt. Kenn ich, mag ich, funktioniert für mich. Hätte ich jQuery weggelassen, dann hätte ich vermutlich angefangen, selbst ein paar Funktionen zu schreiben die die kompakte Syntax von JQ bieten. Oder würde, wie die Kollegen im großen Nachbarprojekt, auf react aufsetzen. Aber ich wollte fertig werden, keine steilen Lernkurven erklimmen.</p> <p><em>Rolf</em></p> <div class="signature">-- <br> sumpsi - posui - clusi </div> Braucht noch wer jQuery? Fri, 20 Jul 18 12:05:58 Z https://forum.selfhtml.org/self/2018/jul/20/braucht-noch-wer-jquery/1726935#m1726935 https://forum.selfhtml.org/self/2018/jul/20/braucht-noch-wer-jquery/1726935#m1726935 <p>M.E. ist die entscheidende Frage dabei, ob man etwas komplett Neues beginnt, oder etwas Bestehendes weiterentwickelt. Ein bestehendes, individuelles System mit hinreichend komplexer Infrastruktur auf Vanilla-JS umzubauen, um die im Verhältnis dann doch überschaubaren Kilobytes einzusparen, halte ich für komplett drüber.</p> Braucht noch wer jQuery? Fri, 20 Jul 18 21:54:15 Z https://forum.selfhtml.org/self/2018/jul/20/braucht-noch-wer-jquery/1726964#m1726964 https://forum.selfhtml.org/self/2018/jul/20/braucht-noch-wer-jquery/1726964#m1726964 <p>Hi there,</p> <blockquote> <p>hier im Forum ist ja schon immer wieder über die Verwendung, das Pro und Kontra zu <strong>jQuery</strong> diskutiert worden. Die Meinung mancher Forumsteilnehmer (mir eingeschlossen), dass man oftmals jQuery durch <a href="http://www.vanilla-js.com/" rel="nofollow noopener noreferrer"><strong>Vanilla JS</strong></a> ersetzen kann, wird anscheinend <a href="https://www.heise.de/developer/meldung/JavaScript-jQuery-wird-in-Ember-3-3-nicht-mehr-benoetigt-4116424.html" rel="nofollow noopener noreferrer">auch von größeren Projekten geteilt</a>.</p> </blockquote> <p>Naja, der größte Vorteil von jQuery war das Ausbügeln von Browser-Unfähigkeiten und -inkonsistenzen. Da hat sich in den letzten Jahren bei den Browsern wirklich viel getan, und daher fallen mittlerweile noch viel mehr Gründe weg, jQuery irgendwo einzusetzen. Ein echtes Problem ist, daß es mittlerweile eine halbe Generation von "Programmierern" gibt, die von Javascript nur so viel verstehen als sie wissen müssen, um jQuery bedienen zu können. Das ist schon alleine deshalb bedauerlich, weil dadurch das oftmals das Verständnis der Zusammenhänge fehlt.</p> <blockquote> <p>Neben <a href="https://forum.selfhtml.org/m1726468" rel="noopener noreferrer">CSS als neuem JavaScript</a> wird das wohl <em>das nächste große Ding</em>.</p> </blockquote> <p>Sorry, aber das versteh ich nicht…</p> Braucht noch wer jQuery? Mon, 23 Jul 18 06:39:55 Z https://forum.selfhtml.org/self/2018/jul/20/braucht-noch-wer-jquery/1727107#m1727107 https://forum.selfhtml.org/self/2018/jul/20/braucht-noch-wer-jquery/1727107#m1727107 <p>Hallo Robert,</p> <p>all die, die von sich sagen: „Von Javascript habe ich keine Ahnung, ich programmiere in jQuery“.</p> <p>MMn kann jQuery bei großen Projekten sinnvoll sein, bestimmt aber nicht, um nur einen Eventhandler zu setzen.</p> <p>Gruß<br> Jürgen</p> Ein gutes Wort für jQuery Tue, 24 Jul 18 18:54:31 Z https://forum.selfhtml.org/self/2018/jul/20/braucht-noch-wer-jquery/1727212#m1727212 https://forum.selfhtml.org/self/2018/jul/20/braucht-noch-wer-jquery/1727212#m1727212 <p>Wir sollten uns ein wenig dankbarer geben, jQuery hat seinerzeit große Probleme gelöst und offene Standards und die OpenSource-JavaScript-Landschaft voran getrieben. Ohne jQuery gäbe es heute wahrscheinlich kein <code>document.querySelectorAll</code>. Das DOM, bevor es jQuery gab, war ein Kuriositäten-Kabinett, teils weil es unterspezifiziert war, teils weil Browser sich nicht an Standards halten wollten und teils, weil kein Konsens darüber herrschte, in welche Richtung sich das DOM weiterentwickeln sollte. jQuery hat unzählige Inkompatibilitäten zwischen Browsern aufgedeckt und ausgebügelt. Das hat uns Web-Entwicklern geholfen, weil wir nicht mehr selber jeden Browser-Quirk kennen und umschiffen mussten, es hat den Browser-Herstellern den Wind aus den Segeln genommen, sich eine Vormachtsstellung durch propritäre, unfreie Technologien zu erarbeiten und es hat den Standard-Konsortien geholfen unterspezifiziertes Verhalten zu finden und nachzubessern. Und jQuery hatte genügend Einfluss, um einen Konsens bei der Weiterentwicklung des DOM zu erzielen. Natürlich hat jQuery nur ein oder zwei Puzzelteile zur Gesamtentwicklung des Webs beigetragen, aber das sollten wir zu schätzen wissen. Außerdem hat jQuery die OpenSource-Kultur im Web befördert, ich glaube die Plugin-Datenbank von jQuery war eine der größten JavaScript-OpenSource-Sammlungen bevor sich require.js, common.js, npm und letztlich native ECMAScript-Module etabliert haben.</p> <p>Um auf die Gegenwart zu kommen: unsere Probleme heute sind andere als vor 10 Jahren, und zu deren Lösungen kann jQuery nicht viel beitragen. jQuery-Code war und ist schon immer Spaghetti-Code, jQuery hat nichts anzubieten, um Code besser zu strukturieren, es bevorzugt und benachteiligt keine individuelle Architektur. Viele Probleme, für die jQuery seiner Zeit Lösungen anbieten konnte, sind heute besser gelöst. Heute sind JavaScript-Engines deutlich näher am Standard orientiert, wir haben bessere Paket-Datenbanken und Web Standards sind nicht mehr so orientierungslos wie damals. Dafür haben wir neue Probleme, wir leben im responsiven Zeitalter, Performance spielt eine immer elementarere Rolle, unsere Anwendungen werden komplexer und es wächst das Bedürfnis nach expressiveren, besser wartbaren Architekturen. Die nativen Bausteine, die uns modernes JavaScript und das DOM bieten, sind besser geworden, aber wir stehen heute vor neuen Problmem. Das DOM ist immernoch häufig ein Quell für Performance-Bottelnecks und Korrektheits-Bugs. Neue Frameworks, Architekturen und Programmiersprachen sind erschienen, die diese Probleme lösen wollen. WebComponents, Virtual DOM Libraries, predictable State-Manager, serverseitige Rendering-Engines, Task-Runner, Transpiler, Precompiler, Typechecker… kurz: Software-Engineering-Methoden haben das Feld übernommen und dominieren den gegenwärtigen JavaScript-Kosmos. Wir sollten aber würdigen, dass das auf den Schultern von Giganten getragen wird, wie jQuery mal einer war.</p> Braucht noch wer jQuery? Thu, 26 Jul 18 04:47:56 Z https://forum.selfhtml.org/self/2018/jul/20/braucht-noch-wer-jquery/1727279#m1727279 https://forum.selfhtml.org/self/2018/jul/20/braucht-noch-wer-jquery/1727279#m1727279 <p>Moin,</p> <p>gibt es denn mittlerweile eine Builtin-Funktion zum Serialisieren von Formularfeldern? Also eine Alternative zu <code>jQuery(form).serialize()</code> ?</p> <p>Enctype application/x-www-form-urlencoded</p> <p>MfG</p> Braucht noch wer jQuery? Sun, 29 Jul 18 23:47:30 Z https://forum.selfhtml.org/self/2018/jul/20/braucht-noch-wer-jquery/1727585#m1727585 https://forum.selfhtml.org/self/2018/jul/20/braucht-noch-wer-jquery/1727585#m1727585 <p>Hi there,</p> <p>grad zufällig gefunden und weil's zum Thema passt: <a href="https://snipcart.com/blog/learn-vanilla-javascript-before-using-js-frameworks" rel="nofollow noopener noreferrer">https://snipcart.com/blog/learn-vanilla-javascript-before-using-js-frameworks</a></p> Braucht noch wer jQuery? Mon, 10 Sep 18 05:43:25 Z https://forum.selfhtml.org/self/2018/jul/20/braucht-noch-wer-jquery/1731512#m1731512 https://forum.selfhtml.org/self/2018/jul/20/braucht-noch-wer-jquery/1731512#m1731512 <p>Hej Robert,</p> <blockquote> <p>Neben <a href="https://forum.selfhtml.org/m1726468" rel="noopener noreferrer">CSS als neuem JavaScript</a> wird das wohl <em>das nächste große Ding</em>.</p> </blockquote> <p>CSS ist auch das neue SASS </p> <p>Marc</p> Braucht noch wer jQuery? Sun, 22 Jul 18 20:53:28 Z https://forum.selfhtml.org/self/2018/jul/20/braucht-noch-wer-jquery/1727092#m1727092 https://forum.selfhtml.org/self/2018/jul/20/braucht-noch-wer-jquery/1727092#m1727092 <p>Moin Mitleser,</p> <blockquote> <p>M.E. ist die entscheidende Frage dabei, ob man etwas komplett Neues beginnt, oder etwas Bestehendes weiterentwickelt. Ein bestehendes, individuelles System mit hinreichend komplexer Infrastruktur auf Vanilla-JS umzubauen, um die im Verhältnis dann doch überschaubaren Kilobytes einzusparen, halte ich für komplett drüber.</p> </blockquote> <p>Die Frage ist auch, wie viel der Kilobytes brauche ich oder kann ich einsparen. Code, der nicht geliefert wird, muss auch nicht geparst und compiliert werden. Davon sollte die Performance profitieren: weniger HTTP(S)-Transfer, weniger Compiler-Zeit.</p> <p>Viele Grüße<br> Robert</p> Braucht noch wer jQuery? Sat, 21 Jul 18 21:55:52 Z https://forum.selfhtml.org/self/2018/jul/20/braucht-noch-wer-jquery/1727023#m1727023 https://forum.selfhtml.org/self/2018/jul/20/braucht-noch-wer-jquery/1727023#m1727023 <p>Moin klawischnigg,</p> <blockquote> <blockquote> <p>Neben <a href="https://forum.selfhtml.org/m1726468" rel="noopener noreferrer">CSS als neuem JavaScript</a> wird das wohl <em>das nächste große Ding</em>.</p> </blockquote> <p>Sorry, aber das versteh ich nicht…</p> </blockquote> <p>Da ist ein Link … </p> <p>Schönes Wochenende<br> Robert</p> Braucht noch wer jQuery? Sat, 21 Jul 18 22:22:31 Z https://forum.selfhtml.org/self/2018/jul/20/braucht-noch-wer-jquery/1727024#m1727024 https://forum.selfhtml.org/self/2018/jul/20/braucht-noch-wer-jquery/1727024#m1727024 <p>Hallo klawischnigg,</p> <p><a href="/users/6916" class="mention registered-user" rel="noopener noreferrer">@Robert B.</a></p> <blockquote> <blockquote> <p>hier im Forum ist ja schon immer wieder über die Verwendung, das Pro und Kontra zu <strong>jQuery</strong> diskutiert worden. Die Meinung mancher Forumsteilnehmer (mir eingeschlossen), dass man oftmals jQuery durch <a href="http://www.vanilla-js.com/" rel="nofollow noopener noreferrer"><strong>Vanilla JS</strong></a> ersetzen kann,…</p> </blockquote> </blockquote> <p>pure js anstelle jquery, ja das kenne ich hier, aber vanilla js anstelle jquery ist mir wohl entgangen.</p> <blockquote> <p>Ein echtes Problem ist, daß es mittlerweile eine halbe Generation von "Programmierern" gibt, die von Javascript nur so viel verstehen als sie wissen müssen, um jQuery bedienen zu können. Das ist schon alleine deshalb bedauerlich, weil dadurch das oftmals das Verständnis der Zusammenhänge fehlt.</p> </blockquote> <p>Das ist genau das Problem. Die "Webentwickler" werden immer mehr zum "Anwender" anstelle "Entwicklers". Was eigentlich ja nicht schlimm wäre, wenn die Grundlagen vorhanden sind, doch dem ist fortschreitend immer seltener. Und auch ich selbst ertappe mich oft dabei immer fauler zu werden und vieles zu vergessen, weil gibt ja schon so viele vorgefertigte Sachen, warum immer das Rad neu erfinden. Beruhigend dabei aber zu wissen, ich kann wenn ich will. </p> <p>Gruss<br> Henry</p> <div class="signature">-- <br> Meine Meinung zu DSGVO & Co:<br> „Principiis obsta. Sero medicina parata, cum mala per longas convaluere moras.“ </div> Braucht noch wer jQuery? Sun, 22 Jul 18 08:33:28 Z https://forum.selfhtml.org/self/2018/jul/20/braucht-noch-wer-jquery/1727033#m1727033 https://forum.selfhtml.org/self/2018/jul/20/braucht-noch-wer-jquery/1727033#m1727033 <p>hi,</p> <blockquote> <p>Ein echtes Problem ist, daß es mittlerweile eine halbe Generation von "Programmierern" gibt, die von Javascript nur so viel verstehen als sie wissen müssen, um jQuery bedienen zu können.</p> </blockquote> <p>Das ist kein Problem sondern der Sinn einer jeden Library.</p> <blockquote> <p>Das ist schon alleine deshalb bedauerlich, weil dadurch das oftmals das Verständnis der Zusammenhänge fehlt.</p> </blockquote> <p>Das liegt aber nicht an der Library sondern an jedem selbst.</p> <p>MfG</p> Braucht noch wer jQuery? Sun, 22 Jul 18 06:44:24 Z https://forum.selfhtml.org/self/2018/jul/20/braucht-noch-wer-jquery/1727028#m1727028 https://forum.selfhtml.org/self/2018/jul/20/braucht-noch-wer-jquery/1727028#m1727028 <p>Hallo Henry,</p> <blockquote> <p>pure js anstelle jquery, ja das kenne ich hier, aber vanilla js anstelle jquery ist mir wohl entgangen.</p> </blockquote> <ul> <li><a href="https://wiki.selfhtml.org/wiki/Vanilla-JS" rel="nofollow noopener noreferrer">https://wiki.selfhtml.org/wiki/Vanilla-JS</a></li> <li><a href="https://t3n.de/news/vanillajs-580401/" rel="nofollow noopener noreferrer">https://t3n.de/news/vanillajs-580401/</a></li> </ul> <p>Bis demnächst<br> Matthias</p> <div class="signature">-- <br> Rosen sind rot. </div> Braucht noch wer jQuery? Sun, 22 Jul 18 07:57:23 Z https://forum.selfhtml.org/self/2018/jul/20/braucht-noch-wer-jquery/1727029#m1727029 https://forum.selfhtml.org/self/2018/jul/20/braucht-noch-wer-jquery/1727029#m1727029 <p>hallo</p> <blockquote> <p>Das ist genau das Problem. Die "Webentwickler" werden immer mehr zum "Anwender" anstelle "Entwicklers".</p> </blockquote> <p>Du solltest halt mal deinen Wortschatz überprüfen. Webentwickler war noch nie eine zutreffende Bezeichnung für Menschen, die Sprachen nutzen, um Inhalte zu managen.</p> <div class="signature">-- <br> Neu im Forum! Signaturen kann man ausblenden! </div> Braucht noch wer jQuery? Sun, 22 Jul 18 09:42:48 Z https://forum.selfhtml.org/self/2018/jul/20/braucht-noch-wer-jquery/1727038#m1727038 https://forum.selfhtml.org/self/2018/jul/20/braucht-noch-wer-jquery/1727038#m1727038 <p>Hallo Matthias,</p> <p>danke für die Links. Ist das mal cool </p> <blockquote> <ul> <li><a href="https://wiki.selfhtml.org/wiki/Vanilla-JS" rel="nofollow noopener noreferrer">https://wiki.selfhtml.org/wiki/Vanilla-JS</a></li> </ul> </blockquote> <p>hier war mir das noch nicht bewusst…</p> <blockquote> <ul> <li><a href="https://t3n.de/news/vanillajs-580401/" rel="nofollow noopener noreferrer">https://t3n.de/news/vanillajs-580401/</a></li> </ul> </blockquote> <p>hier jetzt schon. Also VanillaJs = ein Witz, faszinierend. Ich bin voll drauf reingefallen, habe schon mehrfach im Netz Vjs-Scripte gesehen und dachte nur "nicht noch ein Framework", wäre nie drauf gekommen, dass es gar keins ist. Nochmals danke. </p> <p>Gruss<br> Henry</p> <div class="signature">-- <br> Meine Meinung zu DSGVO & Co:<br> „Principiis obsta. Sero medicina parata, cum mala per longas convaluere moras.“ </div> Braucht noch wer jQuery? Sun, 22 Jul 18 09:53:02 Z https://forum.selfhtml.org/self/2018/jul/20/braucht-noch-wer-jquery/1727041#m1727041 https://forum.selfhtml.org/self/2018/jul/20/braucht-noch-wer-jquery/1727041#m1727041 <p>Hallo beatovich,</p> <blockquote> <p>Du solltest halt mal deinen Wortschatz überprüfen.</p> </blockquote> <p>könnte jetzt was dazu sagen, aber weil heute Sonntag ist und das Wetter schön…</p> <blockquote> <p>Webentwickler war noch nie eine zutreffende Bezeichnung für Menschen, die Sprachen nutzen, um Inhalte zu managen.</p> </blockquote> <p>Du hast vergessen zu schreiben "meiner Meinung nach".</p> <p><a href="https://www.ils.de/fernkurse/it/internet-web-design/web-entwickler/?o=00001_00010_BI00101MB&msclkid=bce45f76326f15631d3204226007cc24" rel="nofollow noopener noreferrer">Webentwickler </a></p> <p><a href="https://www.stepstone.de/5/ergebnisliste.html?stf=freeText&ke=Webentwickler&ws=&loc_interest=&loc_physical=1411&cid=SEAdvert_Bing_SEARCH_DE_1000000-E_c_Webentwickler_webentwickler_RLd_EtaId4-L2_-&s_kwcid=AL!523!10!72430379798303!72430535143013&ef_id=Wz04pAAAAbGnDuzr:20180722095125:s" rel="nofollow noopener noreferrer">Webentwickler</a></p> <p><a href="https://www.bing.com/search?q=webentwickler&go=Anfrage+senden&qs=ds&form=QBLH&pc=EUPP_" rel="nofollow noopener noreferrer">usw…</a></p> <p>Gruss<br> Henry</p> <div class="signature">-- <br> Meine Meinung zu DSGVO & Co:<br> „Principiis obsta. Sero medicina parata, cum mala per longas convaluere moras.“ </div> Braucht noch wer jQuery? Sun, 22 Jul 18 20:51:26 Z https://forum.selfhtml.org/self/2018/jul/20/braucht-noch-wer-jquery/1727091#m1727091 https://forum.selfhtml.org/self/2018/jul/20/braucht-noch-wer-jquery/1727091#m1727091 <p>Moin,</p> <p>eine Spinne ist doch ein Webentwickler </p> <p>Viele Grüße<br> Robert</p> Braucht noch wer jQuery? Tue, 24 Jul 18 14:05:15 Z https://forum.selfhtml.org/self/2018/jul/20/braucht-noch-wer-jquery/1727198#m1727198 https://forum.selfhtml.org/self/2018/jul/20/braucht-noch-wer-jquery/1727198#m1727198 <p>Hi there,</p> <blockquote> <blockquote> <p>Ein echtes Problem ist, daß es mittlerweile eine halbe Generation von "Programmierern" gibt, die von Javascript nur so viel verstehen als sie wissen müssen, um jQuery bedienen zu können.</p> </blockquote> <p>Das ist kein Problem sondern der Sinn einer jeden Library.</p> </blockquote> <p>Was ist der Sinn einer Library? Daß der Entwickler blöd bleiben darf?</p> <blockquote> <blockquote> <p>Das ist schon alleine deshalb bedauerlich, weil dadurch das oftmals das Verständnis der Zusammenhänge fehlt.</p> </blockquote> <p>Das liegt aber nicht an der Library sondern an jedem selbst.</p> </blockquote> <p>Wenn man nur mit jQuery "arbeitet" entwickelt man gar nicht die nötige Reife, um das zu erkennen…</p> Braucht noch wer jQuery? Sun, 22 Jul 18 20:50:31 Z https://forum.selfhtml.org/self/2018/jul/20/braucht-noch-wer-jquery/1727090#m1727090 https://forum.selfhtml.org/self/2018/jul/20/braucht-noch-wer-jquery/1727090#m1727090 <p>Moin Henry,</p> <blockquote> <p>danke für die Links. Ist das mal cool </p> </blockquote> <p>Und performant: Kein Bloat, geringe Größe der Bibliothek, keine Installation, läuft Out-of-the-Box, …</p> <blockquote> <p>Also VanillaJs = ein Witz, faszinierend. Ich bin voll drauf reingefallen, habe schon mehrfach im Netz Vjs-Scripte gesehen und dachte nur "nicht noch ein Framework", wäre nie drauf gekommen, dass es gar keins ist. Nochmals danke. </p> </blockquote> <p>Das ist <strong>kein</strong> Witz. Ob eine Laufzeitumgebung ein Framework ist, überlasse ich anderen zur Diskussion.</p> <p>Viele Grüße<br> Robert</p> Braucht noch wer jQuery? Mon, 23 Jul 18 06:35:15 Z https://forum.selfhtml.org/self/2018/jul/20/braucht-noch-wer-jquery/1727106#m1727106 https://forum.selfhtml.org/self/2018/jul/20/braucht-noch-wer-jquery/1727106#m1727106 <p>Hallo Robert,</p> <blockquote> <p>Das ist <strong>kein</strong> Witz.</p> </blockquote> <p>Humor ist, wenn man trotzdem lacht.</p> <p>Gruß<br> Jürgen</p> Braucht noch wer jQuery? Tue, 24 Jul 18 14:12:28 Z https://forum.selfhtml.org/self/2018/jul/20/braucht-noch-wer-jquery/1727199#m1727199 https://forum.selfhtml.org/self/2018/jul/20/braucht-noch-wer-jquery/1727199#m1727199 <p>Hi there,</p> <blockquote> <blockquote> <blockquote> <p>Ein echtes Problem ist, daß es mittlerweile eine halbe Generation von "Programmierern" gibt, die von Javascript nur so viel verstehen als sie wissen müssen, um jQuery bedienen zu können.</p> </blockquote> <p>Das ist kein Problem sondern der Sinn einer jeden Library.</p> </blockquote> <p>Was ist der Sinn einer Library? Daß der Entwickler blöd bleiben darf?</p> </blockquote> <p>Das ist zwar nicht der Sinn einer Library aber es ist oftmals so.</p> <blockquote> <p>Wenn man nur mit jQuery "arbeitet" entwickelt man gar nicht die nötige Reife, um das zu erkennen…</p> </blockquote> <p>Ich kenne genügend Perlentwickler die können OOP nur dann wenn sie Moose einsetzen.</p> <p>MfG</p> Braucht noch wer jQuery? Mon, 10 Sep 18 05:59:52 Z https://forum.selfhtml.org/self/2018/jul/20/braucht-noch-wer-jquery/1731513#m1731513 https://forum.selfhtml.org/self/2018/jul/20/braucht-noch-wer-jquery/1731513#m1731513 <p>Hej klawischnigg,</p> <blockquote> <blockquote> <blockquote> <p>Ein echtes Problem ist, daß es mittlerweile eine halbe Generation von "Programmierern" gibt, die von Javascript nur so viel verstehen als sie wissen müssen, um jQuery bedienen zu können.</p> </blockquote> <p>Das ist kein Problem sondern der Sinn einer jeden Library.</p> </blockquote> <p>Was ist der Sinn einer Library? Daß der Entwickler blöd bleiben darf?</p> </blockquote> <p>Nein, dass man sie bedienen kann und sich auf etwas konzentrieren kann, das eben nciht JavaScript heißt (zum Beispiel den Inhalt der Website, wenn nicht nur Entwickler ist, sondern eigentlich jemand, der irgendetwas sagen möchte).</p> <p>jQuery ist halt ein Werkzeug, das in der Vergangenheit seine Berechtigung vor allem aus der Tatsache gezogen hat, dass pures JS unnötig asufwändig zu schreiben war aufgrund diverser Browser-Inkompatibilitäten.</p> <p>Hätte es sich noch weiter in die Richtung entwickelt, Menschen das Skripten von Webseiten zu erleichtern, ohne JaVaScript lernen zu müssen, Menschen die eben keine Programmierer sind (vielleicht unter Verzicht auf ganz viele Möglichkeiten, die ein echter Programmierer hat), wäre es IMHO immer noch interessant. Aber so hat es für mich seinen Sinn weitgehend verloren. Ja, wenn man bereits dran gewöhnt ist, will man nicht JS lernen, kann ich verstehen. Ich habe auch einen inneren Schweinhund </p> <p>Aber das ist kein Argument, sondern einfach eine menschliche Eigenschaft, die etwas mit Dir und mir, nicht aber mit jQuery und JS zu tun hat.</p> <p>Marc</p> Ein gutes Wort für jQuery Wed, 25 Jul 18 07:48:58 Z https://forum.selfhtml.org/self/2018/jul/20/braucht-noch-wer-jquery/1727224#m1727224 https://forum.selfhtml.org/self/2018/jul/20/braucht-noch-wer-jquery/1727224#m1727224 <p>Hallo 1unitedpower,</p> <blockquote> <p>jQuery-Code war und ist schon immer Spaghetti-Code</p> </blockquote> <p>jQuery-Code ist genauso Spaghetti wie anderer Code, das hängt vom Programmierer ab. Ein erfahrener Spaghetti-Programmierer produziert in jeder Sprache und mit jedem Toolset Spaghetti-Code. Und ein ordentlicher Programmierer produziert in jeder Sprache<sup class="footnote-ref"><a href="#fn1" id="fnref1">[1]</a></sup>, die das nicht aktiv verhindert, ordentliche Programme.</p> <p>Es sei denn, du vergleichst ein auf jQuery aufbauendes Programm mit deklarativen Konzepten wie Angular, Knockout oder React und empfindest einen Ansatz ohne solche Frameworks als Spaghetti.</p> <blockquote> <p>jQuery hat nichts anzubieten, um Code besser zu strukturieren, es bevorzugt und benachteiligt keine individuelle Architektur</p> </blockquote> <p>Nein, das war ja auch nie die Idee. jQuery ist eine Shell um das DOM, mit ein paar Goodies. Und hat da, wie Du dargelegt hast, einen tollen, aber so gut wie obsoleten, Job gemacht.</p> <p><em>Rolf</em></p> <div class="signature">-- <br> sumpsi - posui - clusi </div> <hr class="footnotes-sep"> <section class="footnotes"> <ol class="footnotes-list"> <li id="fn1" class="footnote-item"><p>APL, Brainfuck, VATICAL <a href="#fnref1" class="footnote-backref">↩︎</a></p> </li> </ol> </section> Ein gutes Wort für jQuery Wed, 25 Jul 18 22:43:48 Z https://forum.selfhtml.org/self/2018/jul/20/braucht-noch-wer-jquery/1727276#m1727276 https://forum.selfhtml.org/self/2018/jul/20/braucht-noch-wer-jquery/1727276#m1727276 <blockquote> <p>jQuery-Code ist genauso Spaghetti wie anderer Code, das hängt vom Programmierer ab. Ein erfahrener Spaghetti-Programmierer produziert in jeder Sprache und mit jedem Toolset Spaghetti-Code. Und ein ordentlicher Programmierer produziert in jeder Sprache, die das nicht aktiv verhindert, ordentliche Programme.</p> </blockquote> <p>Das glaube ich nicht, stehe ich vor einem Programmierproblem, entwickle ich ein mentales Modell dafür, das ich schrittweise in Code übersetze. Wenn die Programmierumgebung meinem mentalen Modell ähnelt, dann bringe ich recht expressiven Code zustande, wenn sie zu sehr davon abweicht, kommt da Spaghetti-Code raus. Eine kleine Analogie: Wenn mein Auftrag lautet ein Raumschiff zu zeichnen, kommt da auch meistens etwas raus, das dem Raumschiff, das ich vor meinem inneren Auge visualisiert habe, zumindest grob ähnelt, auch wenn meine Zeichentechnik unausgereift ist. Wenn mir jemand vorschreibt, ich solle das Bild wie ein Tintenstrahldrucker Linie für Linie zeichnen, dann kommt da höchstens Krikel Krakel bei rum.</p> <p>John De Goes hat das eben <a href="https://twitter.com/jdegoes/status/1022106067017388032" rel="nofollow noopener noreferrer">bei Twitter</a> sehr gut auf den Punkt gebracht:</p> <blockquote> <p>Programming pain is caused by the irreversible loss of information that occurs as we translate high-level concepts into low-level language constructs.</p> <p>The ultimate programming language would allow you to program losslessly at the higher level your brain wants to work at.</p> </blockquote> <p>Interessanterweise funktioniert das auch in die Umkehrrichtung: Das Design einer Programmierumgebung kann durch wiederholte Anwendung Auswirkungen auf unsere Visualisierungsfähigkeit und unser abstraktes Denkvermögen nehmen. Das kann Schaden anrichten, als Programmieranfänger habe ich zu spüren bekommen, wie sehr das prozedurale Paradigma meine Lernfähigkeit und -bereitschaft für neue Denkmuster gemindert hat. Seitdem versuche ich regelmäßig andersgeartete Programmiersprachen zu lernen, um offen für alternative Lösungensverfahren zu bleiben (und natürlich weil ich Freude daran habe und meine Brötchen damit verdiene). Die Rückkopplung hat aber auch ein paar gute Seiten, zum Beispiel schöpfe ich heute aus einem großen Topf abstrakter Lösungsmuster, die ich mir selber hätte niemals ausdenken können, und die mir wohl ewig verborgen geblieben wären, hätte ich mich nicht intensiv mit funktionaler Programmierung beschäftigt.</p> Braucht noch wer jQuery? Thu, 26 Jul 18 05:28:03 Z https://forum.selfhtml.org/self/2018/jul/20/braucht-noch-wer-jquery/1727281#m1727281 https://forum.selfhtml.org/self/2018/jul/20/braucht-noch-wer-jquery/1727281#m1727281 <p>Tach!</p> <blockquote> <p>gibt es denn mittlerweile eine Builtin-Funktion zum Serialisieren von Formularfeldern?</p> </blockquote> <p>jQuery ist auch nicht built-in, also muss eine Vanilla-Lösung auch nicht direkt built-in sein.</p> <blockquote> <p>Also eine Alternative zu <code>jQuery(form).serialize()</code> ?</p> <p>Enctype application/x-www-form-urlencoded</p> </blockquote> <p>Geht als Einzeiler:</p> <pre><code class="block language-javascript"><span class="token keyword">const</span> form <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token class-name">FormData</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span> form<span class="token punctuation">.</span><span class="token function">append</span><span class="token punctuation">(</span><span class="token string">'foo'</span><span class="token punctuation">,</span> <span class="token string">'bar'</span><span class="token punctuation">)</span><span class="token punctuation">;</span> form<span class="token punctuation">.</span><span class="token function">append</span><span class="token punctuation">(</span><span class="token string">'qux'</span><span class="token punctuation">,</span> <span class="token string">'baz'</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token keyword">const</span> serialized <span class="token operator">=</span> Array<span class="token punctuation">.</span><span class="token function">from</span><span class="token punctuation">(</span>form<span class="token punctuation">)</span> <span class="token punctuation">.</span><span class="token function">map</span><span class="token punctuation">(</span><span class="token parameter">field</span> <span class="token operator">=></span> <span class="token template-string"><span class="token template-punctuation string">`</span><span class="token interpolation"><span class="token interpolation-punctuation punctuation">${</span><span class="token function">encodeURIComponent</span><span class="token punctuation">(</span>field<span class="token punctuation">[</span><span class="token number">0</span><span class="token punctuation">]</span><span class="token punctuation">)</span><span class="token interpolation-punctuation punctuation">}</span></span><span class="token string">=</span><span class="token interpolation"><span class="token interpolation-punctuation punctuation">${</span><span class="token function">encodeURIComponent</span><span class="token punctuation">(</span>field<span class="token punctuation">[</span><span class="token number">1</span><span class="token punctuation">]</span><span class="token punctuation">)</span><span class="token interpolation-punctuation punctuation">}</span></span><span class="token template-punctuation string">`</span></span><span class="token punctuation">)</span> <span class="token punctuation">.</span><span class="token function">join</span><span class="token punctuation">(</span><span class="token string">'&'</span><span class="token punctuation">)</span><span class="token punctuation">;</span> </code></pre> <p>dedlfix.</p> Braucht noch wer jQuery? Thu, 26 Jul 18 07:40:33 Z https://forum.selfhtml.org/self/2018/jul/20/braucht-noch-wer-jquery/1727296#m1727296 https://forum.selfhtml.org/self/2018/jul/20/braucht-noch-wer-jquery/1727296#m1727296 <p>Weitere Infos:</p> <blockquote> <p>Enctype application/x-www-form-urlencoded</p> </blockquote> <p>Das ist der Default. D.h., er muss nicht angegben werden. Was in einem <form>-Element der Enctype ist, das ist bei einem POST auch gleichzeitig der Content-Type.</p> <p>Wenn also notiert wurde <code><form method="POST" Enctype="application/x-www-form-urlencoded"></code> wird bei einem Submit aus dem Enctype-Attribute der Request-Header Content-Type. Wurde dieses <form>-Attribute nicht angegeben, wird ein Content-Type-Request-Header gar nicht gesendet. Genau das ist ja der Sinn eines Default.</p> <p>Von daher werden wohl die Wenigsten diesen Enctype jemals in Formularen notiert haben. Des Weiteren ist ein Request-Header Content-Type nicht einmal dann notwendig, wenn es einen Message-Body gibt. Jedoch ist in diesem Fall ein Request-Header Content-Lenght erforderlich welcher die Länge des gesendeten Messagebody angibt (Anzahl der Bytes).</p> <p>Ob serverseitig ein body in STDIN zu erwarten ist, macht der Server am Requestheader Content-Length fest und nicht etwa an der Requestmethode. Letztere kann ein Client ja auch <code>ZITRONE</code> genannt haben, und ja, mit fetch() ist das auch möglich.</p> <p>Der Content-Type schließlich teilt dem Serverprozess mit, wie die Daten wiederherzustellen sind.</p> <p>Was jQuery(form).serialize() betrifft: Da gibt es mit native JS derzeit keine Alternative. Wer sich da selbst was zusammenbauen möchte, sollte zumindest wissen wie der Default Enctype aufgebaut ist und dass man diesen nicht nur an einen URL anhängen sondern auch als MessageBody senden kann.</p> <p>MfG</p> Braucht noch wer jQuery? Thu, 26 Jul 18 05:36:38 Z https://forum.selfhtml.org/self/2018/jul/20/braucht-noch-wer-jquery/1727282#m1727282 https://forum.selfhtml.org/self/2018/jul/20/braucht-noch-wer-jquery/1727282#m1727282 <p>Hallo dedlfix,</p> <blockquote> <pre><code class="block language-javascript"><span class="token keyword">const</span> form <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token class-name">FormData</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span> form<span class="token punctuation">.</span><span class="token function">append</span><span class="token punctuation">(</span><span class="token string">'foo'</span><span class="token punctuation">,</span> <span class="token string">'bar'</span><span class="token punctuation">)</span><span class="token punctuation">;</span> form<span class="token punctuation">.</span><span class="token function">append</span><span class="token punctuation">(</span><span class="token string">'qux'</span><span class="token punctuation">,</span> <span class="token string">'baz'</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token keyword">const</span> serialized <span class="token operator">=</span> Array<span class="token punctuation">.</span><span class="token function">from</span><span class="token punctuation">(</span>form<span class="token punctuation">)</span> <span class="token punctuation">.</span><span class="token function">map</span><span class="token punctuation">(</span><span class="token parameter">field</span> <span class="token operator">=></span> <span class="token template-string"><span class="token template-punctuation string">`</span><span class="token interpolation"><span class="token interpolation-punctuation punctuation">${</span><span class="token function">encodeURIComponent</span><span class="token punctuation">(</span>field<span class="token punctuation">[</span><span class="token number">0</span><span class="token punctuation">]</span><span class="token punctuation">)</span><span class="token interpolation-punctuation punctuation">}</span></span><span class="token string">=</span><span class="token interpolation"><span class="token interpolation-punctuation punctuation">${</span><span class="token function">encodeURIComponent</span><span class="token punctuation">(</span>field<span class="token punctuation">[</span><span class="token number">1</span><span class="token punctuation">]</span><span class="token punctuation">)</span><span class="token interpolation-punctuation punctuation">}</span></span><span class="token template-punctuation string">`</span></span><span class="token punctuation">)</span> <span class="token punctuation">.</span><span class="token function">join</span><span class="token punctuation">(</span><span class="token string">'&'</span><span class="token punctuation">)</span><span class="token punctuation">;</span> </code></pre> </blockquote> <p>Das schöne an <code>FormData</code> ist aber halt auch, dass die Serialisierung so gar nicht nötig ist.</p> <pre><code class="block language-js"><span class="token function">fetch</span><span class="token punctuation">(</span><span class="token string">'https://example.com/foo'</span><span class="token punctuation">,</span> <span class="token punctuation">{</span> <span class="token literal-property property">method</span><span class="token operator">:</span> <span class="token string">'POST'</span><span class="token punctuation">,</span> <span class="token literal-property property">body</span><span class="token operator">:</span> form <span class="token punctuation">}</span><span class="token punctuation">)</span><span class="token punctuation">;</span> </code></pre> <p>Das tut genau das, was man erwarten würde: es schickt die Daten <code>application/x-www-form-urlencoded</code> an die angegebene URL. </p> <p>LG,<br> CK</p> <div class="signature">-- <br> <a href="https://wwwtech.de/about" rel="noopener noreferrer">https://wwwtech.de/about</a> </div> Braucht noch wer jQuery? Thu, 26 Jul 18 06:19:02 Z https://forum.selfhtml.org/self/2018/jul/20/braucht-noch-wer-jquery/1727286#m1727286 https://forum.selfhtml.org/self/2018/jul/20/braucht-noch-wer-jquery/1727286#m1727286 <p>Tach!</p> <blockquote> <blockquote> <p>Enctype application/x-www-form-urlencoded</p> </blockquote> <p>Geht als Einzeiler:</p> <pre><code class="block language-javascript"><span class="token keyword">const</span> form <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token class-name">FormData</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span> form<span class="token punctuation">.</span><span class="token function">append</span><span class="token punctuation">(</span><span class="token string">'foo'</span><span class="token punctuation">,</span> <span class="token string">'bar'</span><span class="token punctuation">)</span><span class="token punctuation">;</span> form<span class="token punctuation">.</span><span class="token function">append</span><span class="token punctuation">(</span><span class="token string">'qux'</span><span class="token punctuation">,</span> <span class="token string">'baz'</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token keyword">const</span> serialized <span class="token operator">=</span> Array<span class="token punctuation">.</span><span class="token function">from</span><span class="token punctuation">(</span>form<span class="token punctuation">)</span> <span class="token punctuation">.</span><span class="token function">map</span><span class="token punctuation">(</span><span class="token parameter">field</span> <span class="token operator">=></span> <span class="token template-string"><span class="token template-punctuation string">`</span><span class="token interpolation"><span class="token interpolation-punctuation punctuation">${</span><span class="token function">encodeURIComponent</span><span class="token punctuation">(</span>field<span class="token punctuation">[</span><span class="token number">0</span><span class="token punctuation">]</span><span class="token punctuation">)</span><span class="token interpolation-punctuation punctuation">}</span></span><span class="token string">=</span><span class="token interpolation"><span class="token interpolation-punctuation punctuation">${</span><span class="token function">encodeURIComponent</span><span class="token punctuation">(</span>field<span class="token punctuation">[</span><span class="token number">1</span><span class="token punctuation">]</span><span class="token punctuation">)</span><span class="token interpolation-punctuation punctuation">}</span></span><span class="token template-punctuation string">`</span></span><span class="token punctuation">)</span> <span class="token punctuation">.</span><span class="token function">join</span><span class="token punctuation">(</span><span class="token string">'&'</span><span class="token punctuation">)</span><span class="token punctuation">;</span> </code></pre> </blockquote> <p>Nein geht nicht als Einzeiler. FormData liefert einen ganz anderen Content-Type (Enctype siehe obenstehend).</p> <p><code>Array.from()..</code> muss ich mir anschauen.</p> <p>MfG</p> Braucht noch wer jQuery? Thu, 26 Jul 18 05:58:45 Z https://forum.selfhtml.org/self/2018/jul/20/braucht-noch-wer-jquery/1727283#m1727283 https://forum.selfhtml.org/self/2018/jul/20/braucht-noch-wer-jquery/1727283#m1727283 <p>Tach!</p> <blockquote> <p>Das schöne an <code>FormData</code> ist aber halt auch, dass die Serialisierung so gar nicht nötig ist.</p> </blockquote> <p>Das hab ich für die gegebene Aufgabenstellung nicht gefunden.</p> <blockquote> <pre><code class="block language-js"><span class="token function">fetch</span><span class="token punctuation">(</span><span class="token string">'https://example.com/foo'</span><span class="token punctuation">,</span> <span class="token punctuation">{</span> <span class="token literal-property property">method</span><span class="token operator">:</span> <span class="token string">'POST'</span><span class="token punctuation">,</span> <span class="token literal-property property">body</span><span class="token operator">:</span> form <span class="token punctuation">}</span><span class="token punctuation">)</span><span class="token punctuation">;</span> </code></pre> <p>Das tut genau das, was man erwarten würde: es schickt die Daten <code>application/x-www-form-urlencoded</code> an die angegebene URL. </p> </blockquote> <p>Nein, es sendet multipart/form-data im Body und erzeugt damit keine Serialisierung für die URL, so wie es die jQuery-Funktion macht.</p> <p>dedlfix.</p> Braucht noch wer jQuery? Thu, 26 Jul 18 06:11:48 Z https://forum.selfhtml.org/self/2018/jul/20/braucht-noch-wer-jquery/1727285#m1727285 https://forum.selfhtml.org/self/2018/jul/20/braucht-noch-wer-jquery/1727285#m1727285 <p>Hallo dedlfix,</p> <blockquote> <blockquote> <pre><code class="block language-js"><span class="token function">fetch</span><span class="token punctuation">(</span><span class="token string">'https://example.com/foo'</span><span class="token punctuation">,</span> <span class="token punctuation">{</span> <span class="token literal-property property">method</span><span class="token operator">:</span> <span class="token string">'POST'</span><span class="token punctuation">,</span> <span class="token literal-property property">body</span><span class="token operator">:</span> form <span class="token punctuation">}</span><span class="token punctuation">)</span><span class="token punctuation">;</span> </code></pre> <p>Das tut genau das, was man erwarten würde: es schickt die Daten <code>application/x-www-form-urlencoded</code> an die angegebene URL. </p> </blockquote> <p>Nein, es sendet multipart/form-data im Body und erzeugt damit keine Serialisierung für die URL, so wie es die jQuery-Funktion macht.</p> </blockquote> <p>Ja, stimmt. Ich hatte es mit <a href="https://developer.mozilla.org/en-US/docs/Web/API/URLSearchParams" rel="nofollow noopener noreferrer">URLSearchParams</a> verwechselt.</p> <p>LG,<br> CK</p> <div class="signature">-- <br> <a href="https://wwwtech.de/about" rel="noopener noreferrer">https://wwwtech.de/about</a> </div> Braucht noch wer jQuery? Sat, 28 Jul 18 04:50:45 Z https://forum.selfhtml.org/self/2018/jul/20/braucht-noch-wer-jquery/1727410#m1727410 https://forum.selfhtml.org/self/2018/jul/20/braucht-noch-wer-jquery/1727410#m1727410 <p><a href="/users/27" class="mention registered-user" rel="noopener noreferrer">@dedlfix</a></p> <blockquote> <p>Nein, es sendet multipart/form-data im Body und erzeugt damit keine Serialisierung für die URL, so wie es die jQuery-Funktion macht.</p> </blockquote> <p>jQuery(form).serialize() serialisiert den Default Enctype. Da steckt zwar das Wort <code>urlencoded</code> drin aber daß heißt ja nicht, daß man diesen String grundsätzlich an den URL anhängt. Mit Request Method POST nämlich wird genau derselbe String im Message Body gesendet!</p> <p>Das heißt daß der Enctype <code>application/x-www-form-urlencoded</code> unabhängig von der beabsichtigten Requestmethode ist.</p> <p>MfG</p> Braucht noch wer jQuery? Thu, 26 Jul 18 06:22:31 Z https://forum.selfhtml.org/self/2018/jul/20/braucht-noch-wer-jquery/1727287#m1727287 https://forum.selfhtml.org/self/2018/jul/20/braucht-noch-wer-jquery/1727287#m1727287 <p>Tach!</p> <blockquote> <blockquote> <p>Nein, es sendet multipart/form-data im Body und erzeugt damit keine Serialisierung für die URL, so wie es die jQuery-Funktion macht.</p> </blockquote> <p>Ja, stimmt. Ich hatte es mit <a href="https://developer.mozilla.org/en-US/docs/Web/API/URLSearchParams" rel="nofollow noopener noreferrer">URLSearchParams</a> verwechselt.</p> </blockquote> <p>Ach, das gibts auch ... Zumindest kann man es mit dieser im MDN als experimentell gekennzeichneten API vereinfachen: <code>new URLSearchParams(form).toString();</code></p> <p>dedlfix.</p> Braucht noch wer jQuery? Thu, 26 Jul 18 06:31:28 Z https://forum.selfhtml.org/self/2018/jul/20/braucht-noch-wer-jquery/1727288#m1727288 https://forum.selfhtml.org/self/2018/jul/20/braucht-noch-wer-jquery/1727288#m1727288 <p>Tach!</p> <blockquote> <blockquote> <blockquote> <p>Enctype application/x-www-form-urlencoded</p> </blockquote> <p>Geht als Einzeiler:</p> <pre><code class="block language-javascript"><span class="token keyword">const</span> form <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token class-name">FormData</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span> form<span class="token punctuation">.</span><span class="token function">append</span><span class="token punctuation">(</span><span class="token string">'foo'</span><span class="token punctuation">,</span> <span class="token string">'bar'</span><span class="token punctuation">)</span><span class="token punctuation">;</span> form<span class="token punctuation">.</span><span class="token function">append</span><span class="token punctuation">(</span><span class="token string">'qux'</span><span class="token punctuation">,</span> <span class="token string">'baz'</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token keyword">const</span> serialized <span class="token operator">=</span> Array<span class="token punctuation">.</span><span class="token function">from</span><span class="token punctuation">(</span>form<span class="token punctuation">)</span> <span class="token punctuation">.</span><span class="token function">map</span><span class="token punctuation">(</span><span class="token parameter">field</span> <span class="token operator">=></span> <span class="token template-string"><span class="token template-punctuation string">`</span><span class="token interpolation"><span class="token interpolation-punctuation punctuation">${</span><span class="token function">encodeURIComponent</span><span class="token punctuation">(</span>field<span class="token punctuation">[</span><span class="token number">0</span><span class="token punctuation">]</span><span class="token punctuation">)</span><span class="token interpolation-punctuation punctuation">}</span></span><span class="token string">=</span><span class="token interpolation"><span class="token interpolation-punctuation punctuation">${</span><span class="token function">encodeURIComponent</span><span class="token punctuation">(</span>field<span class="token punctuation">[</span><span class="token number">1</span><span class="token punctuation">]</span><span class="token punctuation">)</span><span class="token interpolation-punctuation punctuation">}</span></span><span class="token template-punctuation string">`</span></span><span class="token punctuation">)</span> <span class="token punctuation">.</span><span class="token function">join</span><span class="token punctuation">(</span><span class="token string">'&'</span><span class="token punctuation">)</span><span class="token punctuation">;</span> </code></pre> </blockquote> <p>Nein geht nicht als Einzeiler. FormData liefert einen ganz anderen Content-Type (Enctype siehe obenstehend).</p> </blockquote> <p>Doch, doch, das Ergebnis ist genau dasselbe. Und DormData liefert überhaupt keinen Content-Type. Das ist lediglich eine Verwaltungsstruktur für Formulardaten. Daten gemäß einem bestimmten Content-Type im HTTP-Sinne entsteht erst bei weiterer Verarbeitung anderenorts, beispielsweise beim Aufruf von XMLHttpRequest.send() oder oben gezeigtem Code oder <a href="https://forum.selfhtml.org/self/2018/jul/20/braucht-noch-wer-jquery/1727287#m1727287" rel="noopener noreferrer">new URLSearchParams(form).toString()</a>.</p> <blockquote> <p><code>Array.from()..</code> muss ich mir anschauen.</p> </blockquote> <p>Array.from() ist nur ein Hilfskonstrukt, um aus einer iterierbaren Sequenz ein richtiges Array zu bekommen, auf das man dann Array-Methoden wie die hier verwendeten map() und join() anwenden zu können.</p> <p>dedlfix.</p> Braucht noch wer jQuery? Thu, 26 Jul 18 06:56:59 Z https://forum.selfhtml.org/self/2018/jul/20/braucht-noch-wer-jquery/1727292#m1727292 https://forum.selfhtml.org/self/2018/jul/20/braucht-noch-wer-jquery/1727292#m1727292 <p>Tach!</p> <blockquote> <blockquote> <blockquote> <p>Nein, es sendet multipart/form-data im Body und erzeugt damit keine Serialisierung für die URL, so wie es die jQuery-Funktion macht.</p> </blockquote> <p>Ja, stimmt. Ich hatte es mit <a href="https://developer.mozilla.org/en-US/docs/Web/API/URLSearchParams" rel="nofollow noopener noreferrer">URLSearchParams</a> verwechselt.</p> </blockquote> <p>Ach, das gibts auch ... Zumindest kann man es mit dieser im MDN als experimentell gekennzeichneten API vereinfachen: <code>new URLSearchParams(form).toString();</code></p> </blockquote> <p>Ok wir testen das:</p> <pre><code class="block language-html"><span class="token tag"><span class="token tag"><span class="token punctuation"><</span>form</span> <span class="token attr-name">id</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>ff<span class="token punctuation">"</span></span><span class="token punctuation">></span></span> <span class="token tag"><span class="token tag"><span class="token punctuation"><</span>input</span> <span class="token attr-name">name</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>foo<span class="token punctuation">"</span></span> <span class="token attr-name">value</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>fooval<span class="token punctuation">"</span></span><span class="token punctuation">></span></span> <span class="token tag"><span class="token tag"><span class="token punctuation"><</span>input</span> <span class="token attr-name">name</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>bar<span class="token punctuation">"</span></span> <span class="token attr-name">value</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>barval<span class="token punctuation">"</span></span><span class="token punctuation">></span></span> <span class="token tag"><span class="token tag"><span class="token punctuation"></</span>form</span><span class="token punctuation">></span></span> <span class="token tag"><span class="token tag"><span class="token punctuation"><</span>script</span><span class="token punctuation">></span></span><span class="token script"><span class="token language-javascript"> <span class="token keyword">var</span> ff <span class="token operator">=</span> document<span class="token punctuation">.</span><span class="token function">getElementById</span><span class="token punctuation">(</span><span class="token string">"ff"</span><span class="token punctuation">)</span><span class="token punctuation">;</span> console<span class="token punctuation">.</span><span class="token function">log</span><span class="token punctuation">(</span> <span class="token keyword">new</span> <span class="token class-name">URLSearchParams</span><span class="token punctuation">(</span>ff<span class="token punctuation">)</span><span class="token punctuation">.</span><span class="token function">toString</span><span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token punctuation">)</span><span class="token punctuation">;</span> </span></span><span class="token tag"><span class="token tag"><span class="token punctuation"></</span>script</span><span class="token punctuation">></span></span> </code></pre> <p>liefert <code>%5Bobject+HTMLFormElement%5D=</code> also nicht das gewünschte Ergebnis.</p> <p>MfG</p> <p>PS: Kann ja auch gar nicht weil</p> <blockquote> <p>The URLSearchParams interface defines utility methods to work with the query string of a URL.</p> </blockquote> Braucht noch wer jQuery? Thu, 26 Jul 18 06:48:03 Z https://forum.selfhtml.org/self/2018/jul/20/braucht-noch-wer-jquery/1727291#m1727291 https://forum.selfhtml.org/self/2018/jul/20/braucht-noch-wer-jquery/1727291#m1727291 <p>Tach!</p> <blockquote> <blockquote> <blockquote> <blockquote> <p>Enctype application/x-www-form-urlencoded</p> </blockquote> <p>Geht als Einzeiler:</p> <pre><code class="block language-javascript"><span class="token keyword">const</span> form <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token class-name">FormData</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span> form<span class="token punctuation">.</span><span class="token function">append</span><span class="token punctuation">(</span><span class="token string">'foo'</span><span class="token punctuation">,</span> <span class="token string">'bar'</span><span class="token punctuation">)</span><span class="token punctuation">;</span> form<span class="token punctuation">.</span><span class="token function">append</span><span class="token punctuation">(</span><span class="token string">'qux'</span><span class="token punctuation">,</span> <span class="token string">'baz'</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token keyword">const</span> serialized <span class="token operator">=</span> Array<span class="token punctuation">.</span><span class="token function">from</span><span class="token punctuation">(</span>form<span class="token punctuation">)</span> <span class="token punctuation">.</span><span class="token function">map</span><span class="token punctuation">(</span><span class="token parameter">field</span> <span class="token operator">=></span> <span class="token template-string"><span class="token template-punctuation string">`</span><span class="token interpolation"><span class="token interpolation-punctuation punctuation">${</span><span class="token function">encodeURIComponent</span><span class="token punctuation">(</span>field<span class="token punctuation">[</span><span class="token number">0</span><span class="token punctuation">]</span><span class="token punctuation">)</span><span class="token interpolation-punctuation punctuation">}</span></span><span class="token string">=</span><span class="token interpolation"><span class="token interpolation-punctuation punctuation">${</span><span class="token function">encodeURIComponent</span><span class="token punctuation">(</span>field<span class="token punctuation">[</span><span class="token number">1</span><span class="token punctuation">]</span><span class="token punctuation">)</span><span class="token interpolation-punctuation punctuation">}</span></span><span class="token template-punctuation string">`</span></span><span class="token punctuation">)</span> <span class="token punctuation">.</span><span class="token function">join</span><span class="token punctuation">(</span><span class="token string">'&'</span><span class="token punctuation">)</span><span class="token punctuation">;</span> </code></pre> </blockquote> <p>Nein geht nicht als Einzeiler. FormData liefert einen ganz anderen Content-Type (Enctype siehe obenstehend).</p> </blockquote> <p>Doch, doch, das Ergebnis ist genau dasselbe. Und DormData liefert überhaupt keinen Content-Type.</p> </blockquote> <p>Da bist Du völlig falsch informiert.</p> <blockquote> <p>Das ist lediglich eine Verwaltungsstruktur für Formulardaten.</p> </blockquote> <p>Das ist Unsinn. Schau Dir bitte <a href="http://rolfrost.de/formdemo.html" rel="nofollow noopener noreferrer">hier</a> an, welchen Content-Type FormData liefert und wie FormData die Daten serialisiert.</p> <blockquote> <p>Daten gemäß einem bestimmten Content-Type im HTTP-Sinne entsteht erst bei weiterer Verarbeitung anderenorts,</p> </blockquote> <p>OOP Overload ist hierzu das Zauberwort. Und genau das funktioniert auch nur weil die Daten bereits gemäß dem Enctype multipart/form-data in der FormDatainstanz vorliegen.</p> <blockquote> <p>beispielsweise beim Aufruf von XMLHttpRequest.send()</p> </blockquote> <p>Nein. Richtig wäre xhr.send(FormDatainstanz); Die Instanz wird übergeben!</p> <p>Hier wird implizit aus der Instanz ein String gemacht: Aufgrund des String-Kontext greift hier das Overload.</p> <p>MfG</p> Braucht noch wer jQuery? Thu, 26 Jul 18 07:15:43 Z https://forum.selfhtml.org/self/2018/jul/20/braucht-noch-wer-jquery/1727294#m1727294 https://forum.selfhtml.org/self/2018/jul/20/braucht-noch-wer-jquery/1727294#m1727294 <p>Tach!</p> <blockquote> <blockquote> <p>Doch, doch, das Ergebnis ist genau dasselbe. Und DormData liefert überhaupt keinen Content-Type.</p> </blockquote> <p>Da bist Du völlig falsch informiert.</p> </blockquote> <blockquote> <blockquote> <p>Das ist lediglich eine Verwaltungsstruktur für Formulardaten.</p> </blockquote> <p>Das ist Unsinn. Schau Dir bitte <a href="http://rolfrost.de/formdemo.html" rel="nofollow noopener noreferrer">hier</a> an, welchen Content-Type FormData liefert und wie FormData die Daten serialisiert.</p> </blockquote> <p>Auch da sehe ich nicht, dass FormData irgendwelche Daten in einem bestimmten Content-Type liefert. Das FormData-Objekt wird da ebenfalls komplett an XMLHttpRequest.send() übergeben, und das ist alles für FormData. FormData definiert keinerlei Methoden, um Daten in einen bestimmten Content-Type umzuwandeln.</p> <blockquote> <blockquote> <p>Daten gemäß einem bestimmten Content-Type im HTTP-Sinne entsteht erst bei weiterer Verarbeitung anderenorts,</p> </blockquote> <p>OOP Overload ist hierzu das Zauberwort. Und genau das funktioniert auch nur weil die Daten bereits gemäß dem Enctype multipart/form-data in der FormDatainstanz vorliegen.</p> </blockquote> <p>Das müsstest du beweisen. Und das wird schwer. FormData ist als Interface definiert, und da steht keine konkrete Implementation dahinter. Was da also wie im Inneren der Browser oder anderer Javascript-Implementationen vorliegt, ist nicht definiert. Lediglich das Interface und seine Methoden sind festgelegt, und darunter ist keine, die einen Content-Type liefert.</p> <blockquote> <blockquote> <p>beispielsweise beim Aufruf von XMLHttpRequest.send()</p> </blockquote> <p>Nein. Richtig wäre xhr.send(FormDatainstanz);</p> <p>Hier wird implizit aus der Instanz ein String gemacht: Aufgrund des String-Kontext greift hier das Overload.</p> </blockquote> <p>Aber ganz sicher nicht von der FormData-Instanz. Was für ein Overload soll da vorhanden sein? Es ist auch gar nicht Aufgabe von FormData, sich in alle möglichen Zielformate ausgeben zu können. Das ginge zwar, wird aber schon seit längerem als schlechter Stil angesehen und stattdessen eine Aufgabentrennung praktiziert. FormDatas Aufgabe ist, einfachen Zugriff auf Formulardaten zu gewähren. Genau dafür <a href="https://xhr.spec.whatwg.org/#interface-formdata" rel="nofollow noopener noreferrer">sind Methoden definiert</a> und für nichts anderes. Wenn eine andere Komponente für ihre Aufgabe die Daten in einer bestimmten Form braucht, muss sie sich selbst darum kümmern, wie sie die umformt, oder welche Komponenten sie zur Umformung beauftragt.</p> <p>dedlfix.</p> Braucht noch wer jQuery? Thu, 26 Jul 18 07:23:39 Z https://forum.selfhtml.org/self/2018/jul/20/braucht-noch-wer-jquery/1727295#m1727295 https://forum.selfhtml.org/self/2018/jul/20/braucht-noch-wer-jquery/1727295#m1727295 <p>Tach!</p> <blockquote> <blockquote> <p>Zumindest kann man es mit dieser im MDN als experimentell gekennzeichneten API vereinfachen: <code>new URLSearchParams(form).toString();</code></p> </blockquote> <p>Ok wir testen das:</p> <pre><code class="block language-html"><span class="token tag"><span class="token tag"><span class="token punctuation"><</span>form</span> <span class="token attr-name">id</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>ff<span class="token punctuation">"</span></span><span class="token punctuation">></span></span> <span class="token tag"><span class="token tag"><span class="token punctuation"><</span>input</span> <span class="token attr-name">name</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>foo<span class="token punctuation">"</span></span> <span class="token attr-name">value</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>fooval<span class="token punctuation">"</span></span><span class="token punctuation">></span></span> <span class="token tag"><span class="token tag"><span class="token punctuation"><</span>input</span> <span class="token attr-name">name</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>bar<span class="token punctuation">"</span></span> <span class="token attr-name">value</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>barval<span class="token punctuation">"</span></span><span class="token punctuation">></span></span> <span class="token tag"><span class="token tag"><span class="token punctuation"></</span>form</span><span class="token punctuation">></span></span> <span class="token tag"><span class="token tag"><span class="token punctuation"><</span>script</span><span class="token punctuation">></span></span><span class="token script"><span class="token language-javascript"> <span class="token keyword">var</span> ff <span class="token operator">=</span> document<span class="token punctuation">.</span><span class="token function">getElementById</span><span class="token punctuation">(</span><span class="token string">"ff"</span><span class="token punctuation">)</span><span class="token punctuation">;</span> console<span class="token punctuation">.</span><span class="token function">log</span><span class="token punctuation">(</span> <span class="token keyword">new</span> <span class="token class-name">URLSearchParams</span><span class="token punctuation">(</span>ff<span class="token punctuation">)</span><span class="token punctuation">.</span><span class="token function">toString</span><span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token punctuation">)</span><span class="token punctuation">;</span> </span></span><span class="token tag"><span class="token tag"><span class="token punctuation"></</span>script</span><span class="token punctuation">></span></span> </code></pre> <p>liefert <code>%5Bobject+HTMLFormElement%5D=</code> also nicht das gewünschte Ergebnis.</p> </blockquote> <p>Da liegt ein Missverständnis vor, das wohl aus einer nicht exakten Variablenbenennung meinerseits resultiert. Mit <code>form</code> meinte ich die FormData-Instanz <a href="https://forum.selfhtml.org/self/2018/jul/20/braucht-noch-wer-jquery/1727281#m1727281" rel="noopener noreferrer">aus meinem Eingangsbeispiel</a>. Wenn du dein Beispiel wie folgt umschreibst, wird ein Schuh draus:</p> <pre><code class="block language-js">console<span class="token punctuation">.</span><span class="token function">log</span><span class="token punctuation">(</span> <span class="token keyword">new</span> <span class="token class-name">URLSearchParams</span><span class="token punctuation">(</span><span class="token keyword">new</span> <span class="token class-name">FormData</span><span class="token punctuation">(</span>ff<span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">.</span><span class="token function">toString</span><span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token punctuation">)</span><span class="token punctuation">;</span> </code></pre> <p>dedlfix.</p> FromData toString und Kontextwechsel Fri, 27 Jul 18 05:17:17 Z https://forum.selfhtml.org/self/2018/jul/20/braucht-noch-wer-jquery/1727376#m1727376 https://forum.selfhtml.org/self/2018/jul/20/braucht-noch-wer-jquery/1727376#m1727376 <p>Tach!</p> <blockquote> <blockquote> <blockquote> <p>Doch, doch, das Ergebnis ist genau dasselbe. Und DormData liefert überhaupt keinen Content-Type.</p> </blockquote> <p>Da bist Du völlig falsch informiert.</p> </blockquote> <blockquote> <blockquote> <p>Das ist lediglich eine Verwaltungsstruktur für Formulardaten.</p> </blockquote> <p>Das ist Unsinn. Schau Dir bitte <a href="http://rolfrost.de/formdemo.html" rel="nofollow noopener noreferrer">hier</a> an, welchen Content-Type FormData liefert und wie FormData die Daten serialisiert.</p> </blockquote> <p>Auch da sehe ich nicht, dass FormData irgendwelche Daten in einem bestimmten Content-Type liefert. Das FormData-Objekt wird da ebenfalls komplett an XMLHttpRequest.send() übergeben, und das ist alles für FormData. FormData definiert keinerlei Methoden, um Daten in einen bestimmten Content-Type umzuwandeln.</p> </blockquote> <p>Entscheidend ist der Kontextwechsel! Und bei <code>xhr.send(formdata)</code> heißt der Kontext String. Gesendet wird also ein String mit eben diesem Content-Type und genausogut kann man denselben String vom Server zum Browser senden und dort die Einzelnen Parts wiederherstellen.</p> <p>Hinter dieser Magie steckt Overload/OOP, damit wird bei einem Kontextwechel implizit eine Methode aufgerufen. Andere PLs reichen diese Methode mit dem Namen <code>toString()</code> nach draußen.</p> <blockquote> <blockquote> <blockquote> <p>Daten gemäß einem bestimmten Content-Type im HTTP-Sinne entsteht erst bei weiterer Verarbeitung anderenorts,</p> </blockquote> <p>OOP Overload ist hierzu das Zauberwort. Und genau das funktioniert auch nur weil die Daten bereits gemäß dem Enctype multipart/form-data in der FormDatainstanz vorliegen.</p> </blockquote> <p>Das müsstest du beweisen. Und das wird schwer.</p> </blockquote> <p>Meine oben verlinkte Anwendung zeigt es doch. Und <a href="http://rolfrost.de/formdown.html" rel="nofollow noopener noreferrer">hier</a> in einer anderen Anwendung zeige ich Dir den umgekehrten Fall welchen die fetchAPI ermöglicht: Aus der Response die mit dem Enctype multipart/form-data gesendet wurde, eine FormData Instanz wiederherzustellen.</p> <p>Das ist ja auch der Sinn von OOP interne Vorgänge über genau definierte Schnittstellen nach draußen zu reichen und zwar so daß sich in Anwender nicht darum kümmern muss was intern abläuft. Nun, daß FormData eine Methode <code>toString()</code> nicht bereitstellt, heißt ja noch lange nicht, daß es eine Solche nicht gibt. Wer schon einmal OO entwickelt hat, wird jedoch wissen, daß es public und private Methods gibt.</p> <p>Den Overload hier im Detail zu erklären würde jedoch schon sehr am Thema vorbeigehen. Aber zum Thema Kontextechsel gibt es ja einen Artikel in Eurem Wiki.</p> <p>MfG</p> Braucht noch wer jQuery? Sat, 28 Jul 18 15:04:54 Z https://forum.selfhtml.org/self/2018/jul/20/braucht-noch-wer-jquery/1727473#m1727473 https://forum.selfhtml.org/self/2018/jul/20/braucht-noch-wer-jquery/1727473#m1727473 <p><a href="/users/27" class="mention registered-user" rel="noopener noreferrer">@dedlfix</a> Tach!</p> <blockquote> <blockquote> <blockquote> <p>Zumindest kann man es mit dieser im MDN als experimentell gekennzeichneten API vereinfachen: <code>new URLSearchParams(form).toString();</code></p> </blockquote> <p>Ok wir testen das:</p> <pre><code class="block language-html"><span class="token tag"><span class="token tag"><span class="token punctuation"><</span>form</span> <span class="token attr-name">id</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>ff<span class="token punctuation">"</span></span><span class="token punctuation">></span></span> <span class="token tag"><span class="token tag"><span class="token punctuation"><</span>input</span> <span class="token attr-name">name</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>foo<span class="token punctuation">"</span></span> <span class="token attr-name">value</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>fooval<span class="token punctuation">"</span></span><span class="token punctuation">></span></span> <span class="token tag"><span class="token tag"><span class="token punctuation"><</span>input</span> <span class="token attr-name">name</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>bar<span class="token punctuation">"</span></span> <span class="token attr-name">value</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>barval<span class="token punctuation">"</span></span><span class="token punctuation">></span></span> <span class="token tag"><span class="token tag"><span class="token punctuation"></</span>form</span><span class="token punctuation">></span></span> <span class="token tag"><span class="token tag"><span class="token punctuation"><</span>script</span><span class="token punctuation">></span></span><span class="token script"><span class="token language-javascript"> <span class="token keyword">var</span> ff <span class="token operator">=</span> document<span class="token punctuation">.</span><span class="token function">getElementById</span><span class="token punctuation">(</span><span class="token string">"ff"</span><span class="token punctuation">)</span><span class="token punctuation">;</span> console<span class="token punctuation">.</span><span class="token function">log</span><span class="token punctuation">(</span> <span class="token keyword">new</span> <span class="token class-name">URLSearchParams</span><span class="token punctuation">(</span>ff<span class="token punctuation">)</span><span class="token punctuation">.</span><span class="token function">toString</span><span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token punctuation">)</span><span class="token punctuation">;</span> </span></span><span class="token tag"><span class="token tag"><span class="token punctuation"></</span>script</span><span class="token punctuation">></span></span> </code></pre> <p>liefert <code>%5Bobject+HTMLFormElement%5D=</code> also nicht das gewünschte Ergebnis.</p> </blockquote> <p>Da liegt ein Missverständnis vor, das wohl aus einer nicht exakten Variablenbenennung meinerseits resultiert. Mit <code>form</code> meinte ich die FormData-Instanz <a href="https://forum.selfhtml.org/self/2018/jul/20/braucht-noch-wer-jquery/1727281#m1727281" rel="noopener noreferrer">aus meinem Eingangsbeispiel</a>. Wenn du dein Beispiel wie folgt umschreibst, wird ein Schuh draus:</p> <pre><code class="block language-js">console<span class="token punctuation">.</span><span class="token function">log</span><span class="token punctuation">(</span> <span class="token keyword">new</span> <span class="token class-name">URLSearchParams</span><span class="token punctuation">(</span><span class="token keyword">new</span> <span class="token class-name">FormData</span><span class="token punctuation">(</span>ff<span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">.</span><span class="token function">toString</span><span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token punctuation">)</span><span class="token punctuation">;</span> </code></pre> </blockquote> <p>Damit ich dir hier keine Antwort schuldig bleibe: Das liefert ebenfalls ein unbrauchbares Ergebnis <code>%5Bobject+FormData%5D=</code></p> <p>MfG</p> Braucht noch wer jQuery? Thu, 26 Jul 18 09:15:33 Z https://forum.selfhtml.org/self/2018/jul/20/braucht-noch-wer-jquery/1727305#m1727305 https://forum.selfhtml.org/self/2018/jul/20/braucht-noch-wer-jquery/1727305#m1727305 <p>Tach!</p> <blockquote> <p>[irgendwas über Forms und Enctype]</p> </blockquote> <p>Das mag zwar alles sein, aber welche Relevanz hat das für das vorliegende Thema jQuery und im Konkreten mit jQuery.serialize() und verwandten Konstrukten? Das Formular soll doch nicht per Submit-Button nebst unabgefangenem submit-Event abgesendet werden.</p> <blockquote> <p>Was jQuery(form).serialize() betrifft: Da gibt es mit native JS derzeit keine Alternative. Wer sich da selbst was zusammenbauen möchte, sollte zumindest wissen wie der Default Enctype aufgebaut ist und dass man diesen nicht nur an einen URL anhängen sondern auch als MessageBody senden kann.</p> </blockquote> <p>Wozu muss man wissen, was der <em>Default</em>-Enctype von Formularen ist? Man muss nur wissen, was der richtige Type für die jeweilige Situation ist. Besonders wenn das Thema Javascript/jQuery ist, interessiert mich der <em>Default</em>-Enctype des Formulars nicht, wenn ich nur dessen Daten verwenden möchte. Das Senden findet schließlich abseits des Formulars statt (von .submit() ohne abgefangenes onsubmit abgesehen), beispielsweise mit der Fetch API oder XMLHttpRequest.</p> <p>Und dann ist es zwar nett, wenn man weiß, wie die Daten aufzubauen sind, aber - und dazu braucht man heutzutage keine externe Library mehr, denn - VanillaJS nimmt einem hier auch viel Arbeit nebst der Notwendigkeit des Grundlagenwissens ab.</p> <pre><code class="block language-javascript"><span class="token function">fetch</span><span class="token punctuation">(</span>url<span class="token punctuation">,</span> <span class="token punctuation">{</span> <span class="token literal-property property">method</span><span class="token operator">:</span> <span class="token string">'POST'</span><span class="token punctuation">,</span> <span class="token literal-property property">body</span><span class="token operator">:</span> formdata <span class="token punctuation">}</span><span class="token punctuation">)</span><span class="token punctuation">.</span><span class="token function">then</span><span class="token punctuation">(</span><span class="token operator">...</span><span class="token punctuation">)</span><span class="token punctuation">;</span> </code></pre> <p>Fertig. Content-Type-Setzen und Payload-Generierung macht der Browser.</p> <p>Oder wenn es unbedingt mit GET sein muss:</p> <pre><code class="block language-javascript"><span class="token keyword">const</span> queryString <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token class-name">URLSearchParams</span><span class="token punctuation">(</span>formdata<span class="token punctuation">)</span><span class="token punctuation">.</span><span class="token function">toString</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token function">fetch</span><span class="token punctuation">(</span><span class="token template-string"><span class="token template-punctuation string">`</span><span class="token interpolation"><span class="token interpolation-punctuation punctuation">${</span>url<span class="token interpolation-punctuation punctuation">}</span></span><span class="token string">?</span><span class="token interpolation"><span class="token interpolation-punctuation punctuation">${</span>queryString<span class="token interpolation-punctuation punctuation">}</span></span><span class="token template-punctuation string">`</span></span><span class="token punctuation">,</span> <span class="token punctuation">{</span> <span class="token literal-property property">method</span><span class="token operator">:</span> <span class="token string">'GET'</span> <span class="token punctuation">}</span><span class="token punctuation">)</span><span class="token punctuation">.</span><span class="token function">then</span><span class="token punctuation">(</span><span class="token operator">...</span><span class="token punctuation">)</span><span class="token punctuation">;</span> </code></pre> <p>dedlfix.</p> Braucht noch wer jQuery? Thu, 26 Jul 18 09:32:26 Z https://forum.selfhtml.org/self/2018/jul/20/braucht-noch-wer-jquery/1727308#m1727308 https://forum.selfhtml.org/self/2018/jul/20/braucht-noch-wer-jquery/1727308#m1727308 <p>Tach!</p> <blockquote> <blockquote> <p>[irgendwas über Forms und Enctype]</p> </blockquote> </blockquote> <p>Was Du als irgendwas bezeichnet ist <a href="https://forum.selfhtml.org/self/2018/jul/20/braucht-noch-wer-jquery/1727296#m1727296" rel="noopener noreferrer">Grundwissen</a>!</p> <p>Gerade für diejnigen die auf jQuery(form).serialize() verzichten wollen. Denn es gibt keine Alternative, da bleibt nämlich nur der Eigenbau!</p> <p>Punkt.</p> Braucht noch wer jQuery? Thu, 26 Jul 18 09:45:02 Z https://forum.selfhtml.org/self/2018/jul/20/braucht-noch-wer-jquery/1727311#m1727311 https://forum.selfhtml.org/self/2018/jul/20/braucht-noch-wer-jquery/1727311#m1727311 <p>Tach!</p> <blockquote> <blockquote> <blockquote> <p>[irgendwas über Forms und Enctype]</p> </blockquote> </blockquote> <p>Was Du als irgendwas bezeichnet ist <a href="https://forum.selfhtml.org/self/2018/jul/20/braucht-noch-wer-jquery/1727296#m1727296" rel="noopener noreferrer">Grundwissen</a>!</p> </blockquote> <p>Ja, Grundwissen, das man selbst bei VanillaJS nicht unbedingt braucht. Was ja auch einer der Kritikpunkte an Librarys war, dass diese (einiges an) Grundlagenwissen obsolet machen. Das schaffen auch die mittlerweile in VanillaJS eingezogenen Komfortfunktionen. Die Welt dreht sich weiter. Was wir heute als Grundlagenwissen bezeichnen, wird morgen durch Vanilla-Irgendwas überflüssig gemacht.</p> <p>Man kann auch Elektronik als die Basis der Rechentechnik als Grundlagenwissen bezeichnen. Braucht man aber auch nicht wirklich, um programmieren zu können. Genausowenig wie wie Physik, die die Grundlage für Elektronik ist. Das ist alles interessant zu wissen, aber eben nicht notwendig.</p> <p>dedlfix.</p> Braucht noch wer jQuery? Thu, 26 Jul 18 09:53:27 Z https://forum.selfhtml.org/self/2018/jul/20/braucht-noch-wer-jquery/1727314#m1727314 https://forum.selfhtml.org/self/2018/jul/20/braucht-noch-wer-jquery/1727314#m1727314 <p>Tach!</p> <blockquote> <blockquote> <blockquote> <blockquote> <p>[irgendwas über Forms und Enctype]</p> </blockquote> </blockquote> <p>Was Du als irgendwas bezeichnet ist <a href="https://forum.selfhtml.org/self/2018/jul/20/braucht-noch-wer-jquery/1727296#m1727296" rel="noopener noreferrer">Grundwissen</a>!</p> </blockquote> <p>Ja, Grundwissen, das man selbst bei VanillaJS nicht unbedingt braucht. Was ja auch einer der Kritikpunkte an Librarys war, dass diese (einiges an) Grundlagenwissen obsolet machen.</p> </blockquote> <p>Grundwissen war noch nie obsolet! Gerade wenn es um einen jQuery(form).serialize() Ersatz geht, ist das von mir dargelegte (minimale) Grundwissen unerlässlich!</p> <blockquote> <p>Das schaffen auch die mittlerweile in VanillaJS eingezogenen Komfortfunktionen.</p> </blockquote> <p>Es gibt keine Solche die jQuery(form).serialize() einfach so ersetzt!</p> <p>MfG</p> Braucht noch wer jQuery? Thu, 26 Jul 18 09:58:49 Z https://forum.selfhtml.org/self/2018/jul/20/braucht-noch-wer-jquery/1727315#m1727315 https://forum.selfhtml.org/self/2018/jul/20/braucht-noch-wer-jquery/1727315#m1727315 <p>Tach!</p> <blockquote> <blockquote> <p>Das schaffen auch die mittlerweile in VanillaJS eingezogenen Komfortfunktionen.</p> </blockquote> <p>Es gibt keine Solche die jQuery(form).serialize() einfach so ersetzt!</p> </blockquote> <p>Diese Aussage wird auch durch mehrfache Wiederholung nicht besser. Es gibt eine einfache Kombination aus Vanilla-JS-Elementen, die <a href="https://forum.selfhtml.org/self/2018/jul/20/braucht-noch-wer-jquery/1727295#m1727295" rel="noopener noreferrer">die gewünschte Funktionalität</a> bietet.</p> <p>dedlfix.</p> Braucht noch wer jQuery? Thu, 26 Jul 18 10:11:07 Z https://forum.selfhtml.org/self/2018/jul/20/braucht-noch-wer-jquery/1727316#m1727316 https://forum.selfhtml.org/self/2018/jul/20/braucht-noch-wer-jquery/1727316#m1727316 <p>Tach!</p> <blockquote> <blockquote> <blockquote> <p>Das schaffen auch die mittlerweile in VanillaJS eingezogenen Komfortfunktionen.</p> </blockquote> <p>Es gibt keine Solche die jQuery(form).serialize() einfach so ersetzt!</p> </blockquote> <p>Diese Aussage wird auch durch mehrfache Wiederholung nicht besser. Es gibt eine einfache Kombination aus Vanilla-JS-Elementen, die <a href="https://forum.selfhtml.org/self/2018/jul/20/braucht-noch-wer-jquery/1727295#m1727295" rel="noopener noreferrer">die gewünschte Funktionalität</a> bietet.</p> </blockquote> <p>Dir ist der Unterschied zwischen den Enctypes nicht klar. Einen anderen Enctype zu erzeugen ist kein Ersatz! jQuery(form).serialize() erzeugt enctype="application/x-www-form-urlencoded" den kann man nicht so ohne Weiters durch multipart/form-data ersetzen.</p> <p>Das kann man vielleicht für konkrete Anwendungsfälle aber nicht im Allgemeinen!</p> <p>MfG</p> Braucht noch wer jQuery? Thu, 26 Jul 18 10:14:53 Z https://forum.selfhtml.org/self/2018/jul/20/braucht-noch-wer-jquery/1727317#m1727317 https://forum.selfhtml.org/self/2018/jul/20/braucht-noch-wer-jquery/1727317#m1727317 <p>Tach!</p> <blockquote> <blockquote> <p>Diese Aussage wird auch durch mehrfache Wiederholung nicht besser. Es gibt eine einfache Kombination aus Vanilla-JS-Elementen, die <a href="https://forum.selfhtml.org/self/2018/jul/20/braucht-noch-wer-jquery/1727295#m1727295" rel="noopener noreferrer">die gewünschte Funktionalität</a> bietet.</p> </blockquote> <p>Dir ist der Unterschied zwischen den Enctypes nicht klar. Einen anderen Enctype zu erzeugen ist kein Ersatz! jQuery(form).serialize() erzeugt enctype="application/x-www-form-urlencoded" den kann man nicht so ohne Weiters durch multipart/form-data ersetzen.</p> </blockquote> <p>Bist du sicher, dass ich eine Ersatzlösung vorgeschlagen habe, die multipart/form-data statt application/x-www-form-urlencoded liefert?</p> <blockquote> <p>Das kann man vielleicht für konkrete Anwendungsfälle aber nicht im Allgemeinen!</p> </blockquote> <p>Jeder Content-Type ist nur für konkrete Anwendungsfälle nutzbar und nicht im Allgemeinen.</p> <p>dedlfix.</p> Braucht noch wer jQuery? Thu, 26 Jul 18 10:25:15 Z https://forum.selfhtml.org/self/2018/jul/20/braucht-noch-wer-jquery/1727319#m1727319 https://forum.selfhtml.org/self/2018/jul/20/braucht-noch-wer-jquery/1727319#m1727319 <p>hi,</p> <blockquote> <p>Bist du sicher, dass ich eine Ersatzlösung vorgeschlagen habe, die multipart/form-data statt application/x-www-form-urlencoded liefert?</p> </blockquote> <p>Deine Ersatzlösung liefert <code>undefined=undefined&undefined=undefined&undefined=undefined</code> dass sieht zwar aus wie application/x-www-form-urlencoded ist aber Müll.</p> <p>MfG</p> Braucht noch wer jQuery? Thu, 26 Jul 18 10:37:53 Z https://forum.selfhtml.org/self/2018/jul/20/braucht-noch-wer-jquery/1727320#m1727320 https://forum.selfhtml.org/self/2018/jul/20/braucht-noch-wer-jquery/1727320#m1727320 <p>Tach!</p> <blockquote> <blockquote> <p>Bist du sicher, dass ich eine Ersatzlösung vorgeschlagen habe, die multipart/form-data statt application/x-www-form-urlencoded liefert?</p> </blockquote> <p>Deine Ersatzlösung liefert <code>undefined=undefined&undefined=undefined&undefined=undefined</code> dass sieht zwar aus wie application/x-www-form-urlencoded ist aber Müll.</p> </blockquote> <p>Dann machst du irgendwas falsch. <a href="https://forum.selfhtml.org/self/2018/jul/20/braucht-noch-wer-jquery/1727292#m1727292" rel="noopener noreferrer">Dein Beispiel</a> mit <a href="https://forum.selfhtml.org/self/2018/jul/20/braucht-noch-wer-jquery/1727295#m1727295" rel="noopener noreferrer">meiner Korrektur</a> liefert mir im FF: <code>foo=fooval&bar=barval</code>. Zudem sind in deiner Ausgabe drei Key-Value-Pärchen zu sehen und in allen hier gegebenen Beispielen waren es nur zwei. Da passt was nicht zusammen.</p> <p>dedlfix.</p> Braucht noch wer jQuery? Thu, 26 Jul 18 10:47:50 Z https://forum.selfhtml.org/self/2018/jul/20/braucht-noch-wer-jquery/1727322#m1727322 https://forum.selfhtml.org/self/2018/jul/20/braucht-noch-wer-jquery/1727322#m1727322 <p>Tach!</p> <blockquote> <blockquote> <blockquote> <p>Bist du sicher, dass ich eine Ersatzlösung vorgeschlagen habe, die multipart/form-data statt application/x-www-form-urlencoded liefert?</p> </blockquote> <p>Deine Ersatzlösung liefert <code>undefined=undefined&undefined=undefined&undefined=undefined</code> dass sieht zwar aus wie application/x-www-form-urlencoded ist aber Müll.</p> </blockquote> <p>Dann machst du irgendwas falsch.</p> </blockquote> <p>Meine Empfehlung: Wenn Du selbst da was bauen willst: Erzeuge als Zwischenschritt nicht gleich einen bestimmten Enctype sondern eine Datenstruktur -- aus welcher Du dann in einem weiteren Schritt beliebige Content-Types erzeugen kannst!</p> <p>application/x-www-form-urlencoded ist ja schließlich nicht alles und wenn Dein Auftraggeber zum Beispiel einen Content-Type <code>application/json</code> oder <code>xml</code> verlangt, kannst Du einen Solchen aus einer vorliegenden Datenstruktur erzeugen, musst also nicht von ganz vorne beim Formular anfangen.</p> <p>Überlege Dir also wie diesbezügliche Datenstrukturen aussehen könnten.</p> <p>MfG</p> Braucht noch wer jQuery? Thu, 26 Jul 18 10:49:23 Z https://forum.selfhtml.org/self/2018/jul/20/braucht-noch-wer-jquery/1727323#m1727323 https://forum.selfhtml.org/self/2018/jul/20/braucht-noch-wer-jquery/1727323#m1727323 <p>Hallo pl,</p> <blockquote> <p>Meine Empfehlung: Wenn Du selbst da was bauen willst: Erzeuge als Zwischenschritt nicht gleich einen bestimmten Enctype sondern eine Datenstruktur -- aus welcher Du dann in einem weiteren Schritt beliebige Content-Types erzeugen kannst!</p> </blockquote> <p>z.B. <a href="https://developer.mozilla.org/en-US/docs/Web/API/FormData" rel="nofollow noopener noreferrer"><code>FormData</code></a>?</p> <p>Manchmal kann ich nur den Kopf schütteln. Lies doch mal die Dokumentation und denke ein wenig darüber nach.</p> <p>LG,<br> CK</p> <div class="signature">-- <br> <a href="https://wwwtech.de/about" rel="noopener noreferrer">https://wwwtech.de/about</a> </div> Braucht noch wer jQuery? Thu, 26 Jul 18 11:14:48 Z https://forum.selfhtml.org/self/2018/jul/20/braucht-noch-wer-jquery/1727325#m1727325 https://forum.selfhtml.org/self/2018/jul/20/braucht-noch-wer-jquery/1727325#m1727325 <p>Tach!</p> <blockquote> <p>Meine Empfehlung: Wenn Du selbst da was bauen willst: Erzeuge als Zwischenschritt nicht gleich einen bestimmten Enctype sondern eine Datenstruktur -- aus welcher Du dann in einem weiteren Schritt beliebige Content-Types erzeugen kannst!</p> </blockquote> <p>Gut, dann in Einzelschritten. Gegeben sei dies wunderschöne Formular.</p> <pre><code class="block language-html"><span class="token tag"><span class="token tag"><span class="token punctuation"><</span>form</span> <span class="token attr-name">id</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>ff<span class="token punctuation">"</span></span><span class="token punctuation">></span></span> <span class="token tag"><span class="token tag"><span class="token punctuation"><</span>input</span> <span class="token attr-name">name</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>foo<span class="token punctuation">"</span></span> <span class="token attr-name">value</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>fooval<span class="token punctuation">"</span></span><span class="token punctuation">></span></span> <span class="token tag"><span class="token tag"><span class="token punctuation"><</span>input</span> <span class="token attr-name">name</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>bar<span class="token punctuation">"</span></span> <span class="token attr-name">value</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>barval<span class="token punctuation">"</span></span><span class="token punctuation">></span></span> <span class="token tag"><span class="token tag"><span class="token punctuation"></</span>form</span><span class="token punctuation">></span></span> </code></pre> <p>Davon holen wir uns erstmal eine Referenz in modernem Javascript. Das heißt, dass diese in eine Konstante kommt und nicht nur ein schnödes <code>var</code>, denn am Inhalt der Variable wird sich nichts mehr ändern.</p> <pre><code class="block language-js"><span class="token keyword">const</span> ff <span class="token operator">=</span> document<span class="token punctuation">.</span><span class="token function">querySelector</span><span class="token punctuation">(</span><span class="token string">"#ff"</span><span class="token punctuation">)</span><span class="token punctuation">;</span> </code></pre> <p>Als nächstes kommt die geforderte Datenstruktur, die von allen weiteren Verarbeitungswünschen unabhängig ist, ein FormData-Objekt.</p> <pre><code class="block language-js"><span class="token keyword">const</span> formData <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token class-name">FormData</span><span class="token punctuation">(</span>ff<span class="token punctuation">)</span><span class="token punctuation">;</span> </code></pre> <p>Und dann verzweigt es sich. Möchte ich einen POST-Request absetzen, bei dem der Payload in den Body kommt, als multipart/form-data, muss ich nichts weiter machen, als das FormData-Objekt dem fetch() oder XHR.send() zu übergeben. Nur wenn die Formulardaten in die URL sollen, braucht es einen Querystring in application/x-www-form-urlencoded.</p> <pre><code class="block language-js"><span class="token keyword">const</span> queryString <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token class-name">URLSearchParams</span><span class="token punctuation">(</span>formData<span class="token punctuation">)</span><span class="token punctuation">.</span><span class="token function">toString</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span> </code></pre> <p>Der Rest ist die Verheiratung mit dem anderen Teil der URL, eine einfache String-Operation.</p> <blockquote> <p>application/x-www-form-urlencoded ist ja schließlich nicht alles und wenn Dein Auftraggeber zum Beispiel einen Content-Type <code>application/json</code> oder <code>xml</code> verlangt,</p> </blockquote> <p>Dazu muss er erstmal genau definieren, wie die Datenstruktur in JSON oder XML aussehen soll. Aber auch das ist mit Umwandlung aus FormData kein unlösbares Problem.</p> <blockquote> <p>Überlege Dir also wie diesbezügliche Datenstrukturen aussehen könnten.</p> </blockquote> <p>Es wäre sehr nett, wenn du nicht vom Thema ablenken würdest. Da steht immer noch deine für mich nicht nachvollziehbare Behauptung im Raum, meine Ersatzlösung würde Müll liefern.</p> <p>dedlfix.</p> Braucht noch wer jQuery? Thu, 26 Jul 18 14:19:14 Z https://forum.selfhtml.org/self/2018/jul/20/braucht-noch-wer-jquery/1727337#m1727337 https://forum.selfhtml.org/self/2018/jul/20/braucht-noch-wer-jquery/1727337#m1727337 <p>Hi,</p> <blockquote> <p>Als nächstes kommt die geforderte Datenstruktur, die von allen weiteren Verarbeitungswünschen unabhängig ist, ein FormData-Objekt.</p> </blockquote> <p>Oh das hatten wir doch geklärt, daß dieser Enctype eben nicht von allen weiteren Verarbeitungsünschen unabhängig ist. Datenstrukturen sind für den wahlfreien Zugriff, FormData hingegen für den Transport. Wie der String für den Enctype multipart/form-data aussieht kannst Du Dir <a href="http://rolfrost.de/formdemo.html" rel="nofollow noopener noreferrer">hier anschauen</a>.</p> <blockquote> <p>Und dann verzweigt es sich. Möchte ich einen POST-Request absetzen, bei dem der Payload in den Body kommt, als multipart/form-data, muss ich nichts weiter machen, als das FormData-Objekt dem fetch() oder XHR.send() zu übergeben. Nur wenn die Formulardaten in die URL sollen, braucht es einen Querystring in application/x-www-form-urlencoded.</p> </blockquote> <p>Das mag Deine ganz persönliche Logik sein geht aber am Thema völlig vorbei! Hier die <a href="https://forum.selfhtml.org/self/2018/jul/20/braucht-noch-wer-jquery/1727296#m1727296" rel="noopener noreferrer">Grundlagen</a>.</p> <p>Und Überhaupt: Was willst Du denn mit einem FormData-Objekt wenn die Daten per application/x-www-form-urlencoded im MessageBody gesendet werden sollen!?</p> <p>Btw. XML, JSON sind auch keine Datenstrukturen sondern nur unterschiedliche Verpackungen für Datenstrukturen. Genauso wie der Enctype multipart/form-data auch nur ein Verpackung ist. Geläufig ist auch der Begriff der Serialisierung, Datenstrukturen wie JS-Arrays, JS-Objekte werden serialisiert und damit zu Strings gemacht.</p> <p>Genau das tut jQuery(form).serialize() wobei diese Funktion genau wie new FormData(form) die Daten nicht aus einer Datenstruktur bezieht sondern direkt aus dem Formular.</p> <p>Meine Serializer sind übrigens schon lange fertig, D.h., Deine Serializer-Lösung steht für mich gar nicht zur Debatte. Ich hatte hier lediglich dargestellt, daß es für jQuery(form).serialize() keinen Ersatz gibt (beachte den Enctype) und eben nur die Eigenlösung bleibt.</p> <p>MfG</p> <p>PS: Ich erachte es als nicht sinnvoll, daß Du immer wieder das Thema FormData hervorwürgst, also immer wieder damit von vorn anfängst!</p> Braucht noch wer jQuery? Thu, 26 Jul 18 14:43:48 Z https://forum.selfhtml.org/self/2018/jul/20/braucht-noch-wer-jquery/1727338#m1727338 https://forum.selfhtml.org/self/2018/jul/20/braucht-noch-wer-jquery/1727338#m1727338 <p>Tach!</p> <blockquote> <blockquote> <p>Als nächstes kommt die geforderte Datenstruktur, die von allen weiteren Verarbeitungswünschen unabhängig ist, ein FormData-Objekt.</p> </blockquote> <p>Oh das hatten wir doch geklärt, daß dieser Enctype eben nicht von allen weiteren Verarbeitungsünschen unabhängig ist.</p> </blockquote> <p>Wie bitte? Was konkret hat denn ein FormData mit irgendeinem Enctype zu tun? Und erzählt mir bitte nicht wieder ohne Beweis, dass FormData die Daten in irgendeiner Enctype-Form liefere.</p> <blockquote> <p>Datenstrukturen sind für den wahlfreien Zugriff, FormData hingegen für den Transport.</p> </blockquote> <p>Vielleicht sprichst du auch von einem ganz anderen FormData und nicht von <a href="https://developer.mozilla.org/en-US/docs/Web/API/FormData/FormData" rel="nofollow noopener noreferrer">FormData aus den Web APIs</a>.</p> <blockquote> <p>Wie der String für den Enctype multipart/form-data aussieht kannst Du Dir <a href="http://rolfrost.de/formdemo.html" rel="nofollow noopener noreferrer">hier anschauen</a>.</p> </blockquote> <p>Gerade der interessiert mich überhaupt nicht (mehr). Das korrekte Umwandeln erledigt der Browser von selbst aus dem übergebenem FormData-Objekt.</p> <blockquote> <blockquote> <p>Und dann verzweigt es sich. Möchte ich einen POST-Request absetzen, bei dem der Payload in den Body kommt, als multipart/form-data, muss ich nichts weiter machen, als das FormData-Objekt dem fetch() oder XHR.send() zu übergeben. Nur wenn die Formulardaten in die URL sollen, braucht es einen Querystring in application/x-www-form-urlencoded.</p> </blockquote> <p>Das mag Deine ganz persönliche Logik sein geht aber am Thema völlig vorbei! Hier die <a href="https://forum.selfhtml.org/self/2018/jul/20/braucht-noch-wer-jquery/1727296#m1727296" rel="noopener noreferrer">Grundlagen</a>.</p> </blockquote> <p>Für mich ging eher jener Beitrag über die Grundlagen am Thema völlig vorbei. Nicht dass ich inhaltlich etwas dagegen zu sagen hätte, nur war das Thema Formular abschicken vorher kein Gegenstand der Diskussion und von meiner Seite ist es das immer noch nicht. Es ging darum, die Daten mit Javascript entgegenzunehmen und selbst einen Request auf die Reise zu senden, abseits eines Forms.</p> <blockquote> <p>Und Überhaupt: Was willst Du denn mit einem FormData-Objekt wenn die Daten per application/x-www-form-urlencoded im MessageBody gesendet werden sollen!?</p> </blockquote> <p>Sollen sie das? Falls ich das jemals wollen würde, dann gibts immer noch das bereits erwähnte URLSearchParams zum einfachen Umformen eines FormData-Objekts. Oder den Einzeiler, den ich zu Anfang ohne Kenntnis der Existenz von URLSearchParams vorgestellt hatte.</p> <blockquote> <p>Meine Serializer sind übrigens schon lange fertig, D.h., Deine Serializer-Lösung steht für mich gar nicht zur Debatte. Ich hatte hier lediglich dargestellt, daß es für jQuery(form).serialize() keinen Ersatz gibt (beachte den Enctype) und eben nur die Eigenlösung bleibt.</p> </blockquote> <p>Und wieder dieselbe Behauptung ohne Beweis, dass deren Widerlegung nicht richtig gewesen wäre.</p> <blockquote> <p>Ich erachte es als nicht sinnvoll, daß Du immer wieder das Thema FormData hervorwürgst, also immer wieder damit von vorn anfängst!</p> </blockquote> <p>Und warum nicht? FormData ist ein essentieller Bestandteil meiner Lösungsvorschläge und der Browser. Wenn du Gründe hast, die dagegensprechen, solltest du sie konkret nennen.</p> <p>dedlfix.</p> Braucht noch wer jQuery? Thu, 26 Jul 18 15:07:20 Z https://forum.selfhtml.org/self/2018/jul/20/braucht-noch-wer-jquery/1727340#m1727340 https://forum.selfhtml.org/self/2018/jul/20/braucht-noch-wer-jquery/1727340#m1727340 <p>hi,</p> <blockquote> <p>Und warum nicht? FormData ist ein essentieller Bestandteil meiner Lösungsvorschläge und der Browser. Wenn du Gründe hast, die dagegensprechen, solltest du sie konkret nennen.</p> </blockquote> <p>Der Grund ist ein anderer Content-Type der anders geparst werden muss. Von daher ist new FormData(form) kein Ersatz für jQuery(form).serialize();</p> <p>Als Ersatz funktioniert es nur dann wenn ein Parser die Daten aus einem nach multipart/form-data kodiertem String genauso wiederherstellt wie er das mit denselben Daten machen würde die mit dem Default Enctype serialisiert wurden.</p> <p>Eine solche Transparenz ist nicht allgemein gültig.</p> <p>MfG</p> Braucht noch wer jQuery? Thu, 26 Jul 18 15:13:20 Z https://forum.selfhtml.org/self/2018/jul/20/braucht-noch-wer-jquery/1727341#m1727341 https://forum.selfhtml.org/self/2018/jul/20/braucht-noch-wer-jquery/1727341#m1727341 <p>Tach!</p> <blockquote> <blockquote> <p>Und warum nicht? FormData ist ein essentieller Bestandteil meiner Lösungsvorschläge und der Browser. Wenn du Gründe hast, die dagegensprechen, solltest du sie konkret nennen.</p> </blockquote> <p>Der Grund ist ein anderer Content-Type der anders geparst werden muss. Von daher ist new FormData(form) kein Ersatz für jQuery(form).serialize();</p> </blockquote> <p>Nicht FormData allein, sondern in Kombination mit URLSearchParams (und document.querySelector(), um genau zu sein).</p> <blockquote> <p>Als Ersatz funktioniert es nur dann wenn ein Parser die Daten aus einem nach multipart/form-data kodiertem String genauso wiederherstellt wie er das mit denselben Daten machen würde die mit dem Default Enctype serialisiert wurden.</p> </blockquote> <p>Niemand hat die Absicht multipart/form-data zu verwenden, wenn application/x-www-form-urlencoded benötigt wird.</p> <p>dedlfix.</p> Braucht noch wer jQuery? Thu, 26 Jul 18 15:18:17 Z https://forum.selfhtml.org/self/2018/jul/20/braucht-noch-wer-jquery/1727342#m1727342 https://forum.selfhtml.org/self/2018/jul/20/braucht-noch-wer-jquery/1727342#m1727342 <blockquote> <p>Tach!</p> <blockquote> <blockquote> <p>Und warum nicht? FormData ist ein essentieller Bestandteil meiner Lösungsvorschläge und der Browser. Wenn du Gründe hast, die dagegensprechen, solltest du sie konkret nennen.</p> </blockquote> <p>Der Grund ist ein anderer Content-Type der anders geparst werden muss. Von daher ist new FormData(form) kein Ersatz für jQuery(form).serialize();</p> </blockquote> <p>Nicht FormData allein, sondern in Kombination mit URLSearchParams (und document.querySelector(), um genau zu sein).</p> </blockquote> <p>Du hast es immer noch nicht verstanden: HTTP spielt beim Parsen eines bestimmten Enctype gar keine Rolle!</p> <p>MfG</p> Braucht noch wer jQuery? Thu, 26 Jul 18 15:25:22 Z https://forum.selfhtml.org/self/2018/jul/20/braucht-noch-wer-jquery/1727343#m1727343 https://forum.selfhtml.org/self/2018/jul/20/braucht-noch-wer-jquery/1727343#m1727343 <p>Tach!</p> <blockquote> <blockquote> <p>Nicht FormData allein, sondern in Kombination mit URLSearchParams (und document.querySelector(), um genau zu sein).</p> </blockquote> <p>Du hast es immer noch nicht verstanden: HTTP spielt beim Parsen eines bestimmten Enctype gar keine Rolle!</p> </blockquote> <p>Inwiefern spielt denn HTTP überhaupt eine Rolle bei dem, was ich gesagt habe? Weder FormData noch URLSearchParams haben irgendetwas mit HTTP am Hut. Und um irgendein Parsen ging es auch zu keiner Zeit. Aufgabenstellung war lediglich Formulardaten zu serialisieren. Wenn ich was nicht versteht, dann warum du HTTP und Parsen ins Spiel bringst.</p> <p>dedlfix.</p> Braucht noch wer jQuery? Thu, 26 Jul 18 15:53:33 Z https://forum.selfhtml.org/self/2018/jul/20/braucht-noch-wer-jquery/1727345#m1727345 https://forum.selfhtml.org/self/2018/jul/20/braucht-noch-wer-jquery/1727345#m1727345 <p>Tach!</p> <blockquote> <blockquote> <blockquote> <p>Nicht FormData allein, sondern in Kombination mit URLSearchParams (und document.querySelector(), um genau zu sein).</p> </blockquote> <p>Du hast es immer noch nicht verstanden: HTTP spielt beim Parsen eines bestimmten Enctype gar keine Rolle!</p> </blockquote> <p>Inwiefern spielt denn HTTP überhaupt eine Rolle bei dem, was ich gesagt habe? Weder FormData noch URLSearchParams haben irgendetwas mit HTTP am Hut. Und um irgendein Parsen ging es auch zu keiner Zeit. Aufgabenstellung war lediglich Formulardaten zu serialisieren. Wenn ich was nicht versteht, dann warum du HTTP und Parsen ins Spiel bringst.</p> </blockquote> <p>Der Parser ist das Entscheidende! Denn wer Daten serialisiert will sie ja auch wiederherstellen. HTTP ist transparent. Wenn man den Parser auch noch transparent haben will, kommt der Enctype ins Spiel: Er muss bei der Übertragung mitgesendet werden heißt das konkret. Also zusätzlich und hier kommt wieder HTTP zum Tragen insofern als daß der Enctype zu einem Request-Header Content-Type gemacht wird. <a href="http://rolfrost.de/formdemo.html" rel="nofollow noopener noreferrer">Diese Seite zeigt es anschaulich</a>.</p> <p>Und noch etwas: Die FormData Instanz kennt eine Methode getAll(); damit ist es möglich. sämtliche Daten wiederherzustellen.</p> <p>URLSearchParams jedoch benötigt einen Query-String (enctype="application/x-www-form-urlencoded"), kann also mit einem FormData Objekt gar nichts anfangen. document.querySelector() kann einen Query-String auch nur dann finden wenn der im DOM abgelegt ist.</p> <p>MfG</p> Braucht noch wer jQuery? Thu, 26 Jul 18 16:02:45 Z https://forum.selfhtml.org/self/2018/jul/20/braucht-noch-wer-jquery/1727346#m1727346 https://forum.selfhtml.org/self/2018/jul/20/braucht-noch-wer-jquery/1727346#m1727346 <p>Moin,</p> <blockquote> <p>Der Parser ist das Entscheidende! Denn wer Daten serialisiert will sie ja auch wiederherstellen.</p> </blockquote> <p>Aber nicht in <em>dieser Diskussion</em>.</p> <p>Viele Grüße<br> Robert</p> Braucht noch wer jQuery? Thu, 26 Jul 18 16:26:06 Z https://forum.selfhtml.org/self/2018/jul/20/braucht-noch-wer-jquery/1727347#m1727347 https://forum.selfhtml.org/self/2018/jul/20/braucht-noch-wer-jquery/1727347#m1727347 <p>Tach!</p> <blockquote> <p>Und noch etwas: Die FormData Instanz kennt eine Methode getAll(); damit ist es möglich. sämtliche Daten wiederherzustellen.</p> </blockquote> <p>Ja, ist aber nicht weiter relevant im vorliegenden Fall.</p> <blockquote> <p>URLSearchParams jedoch benötigt einen Query-String (enctype="application/x-www-form-urlencoded"), kann also mit einem FormData Objekt gar nichts anfangen. document.querySelector() kann einen Query-String auch nur dann finden wenn der im DOM abgelegt ist.</p> </blockquote> <p>Ach, das ist dein Verständnisproblem. Der Konstruktor von URLSearchParams() kann nicht nur einen Querystring entgegennehmen, sondern auch eine Sequenz entgegennehmen, deren Elemente jeweils eine Sequenz von zwei Strings ist, also ein "Array of Arrays of two Strings". In Code ausgedrückt beispielsweise:</p> <p><code>[['foo', 'bar'], ['qux', 'baz'], ...]</code></p> <p>Ein FormData-Objekt ist genau eine solche Sequenz. Das heißt, wenn man über ein FormData iteriert, bekommt man mit jedem Schritt eines der inneren Arrays.</p> <p>Und aus diesen auf diese Weise eingelesenen Daten erzeugt URLSearchParams() dann beim toString() einen Querystring. Womit man den Serialisierungsteil der Funktionalität von jQuery.serialize() hat.</p> <p>dedlfix.</p> Braucht noch wer jQuery? Thu, 26 Jul 18 16:27:26 Z https://forum.selfhtml.org/self/2018/jul/20/braucht-noch-wer-jquery/1727348#m1727348 https://forum.selfhtml.org/self/2018/jul/20/braucht-noch-wer-jquery/1727348#m1727348 <p>Moin,</p> <blockquote> <blockquote> <p>Der Parser ist das Entscheidende! Denn wer Daten serialisiert will sie ja auch wiederherstellen.</p> </blockquote> <p>Aber nicht in <em>dieser Diskussion</em>.</p> </blockquote> <p>Doch ist er. Weil er unmittelbar mit dem Begriff Enctype verbunden ist. Und jQuery(form).serialize() liefert Formulardaten mit einen ganz bestimmten Enctype.</p> <p>MfG</p> <p>PS: Das ist hier ja auch gar keine Diskussion im Übrigen.</p> Braucht noch wer jQuery? Thu, 26 Jul 18 16:53:58 Z https://forum.selfhtml.org/self/2018/jul/20/braucht-noch-wer-jquery/1727351#m1727351 https://forum.selfhtml.org/self/2018/jul/20/braucht-noch-wer-jquery/1727351#m1727351 <p>Tach!</p> <blockquote> <blockquote> <p>Und noch etwas: Die FormData Instanz kennt eine Methode getAll(); damit ist es möglich. sämtliche Daten wiederherzustellen.</p> </blockquote> <p>Ja, ist aber nicht weiter relevant im vorliegenden Fall.</p> <blockquote> <p>URLSearchParams jedoch benötigt einen Query-String (enctype="application/x-www-form-urlencoded"), kann also mit einem FormData Objekt gar nichts anfangen. document.querySelector() kann einen Query-String auch nur dann finden wenn der im DOM abgelegt ist.</p> </blockquote> <p>Ach, das ist dein Verständnisproblem. Der Konstruktor von URLSearchParams() kann nicht nur einen Querystring entgegennehmen, sondern auch eine Sequenz entgegennehmen, deren Elemente jeweils eine Sequenz von zwei Strings ist, also ein "Array of Arrays of two Strings". In Code ausgedrückt beispielsweise:</p> <p><code>[['foo', 'bar'], ['qux', 'baz'], ...]</code></p> <p>Ein FormData-Objekt ist genau eine solche Sequenz. Das heißt, wenn man über ein FormData iteriert, bekommt man mit jedem Schritt eines der inneren Arrays.</p> <p>Und aus diesen auf diese Weise eingelesenen Daten erzeugt URLSearchParams() dann beim toString() einen Querystring. Womit man den Serialisierungsteil der Funktionalität von jQuery.serialize() hat.</p> </blockquote> <p>Natürlich kann man das so machen. Also über FromData die Daten aus dem Formular holen, wiederherstellen als temporäre Datenstruktur und dann mit URLSearchParams einen anderen Enctype erzeugen.</p> <p>Das kann man aber auch gleich mit den Daten machen die man aus dem Formular bekommt.</p> <p>Oder man hat eine Universalmethode die eine universelle Datenstruktur erzeugt (z.B. ein JSArray mit JSObjekten) aus der man beliebige Enctypes machen kann. Das war meine Empfehlung und genauso hab ich die auch selbst vor Jahren umgesetzt. Vor Allem in Hinblick auf mögliche Erweiterungen um weitere Enctypes von denen es unzählige gibt, heutige Browser jedoch nur ganze 2 davon kennen und implementiert haben.</p> <p>Transparenz kommt ja nicht von allein, man muss sich schon ein paar Gedanken machen. Mit meinen Libs kann ich z.B. $(form).serialize() komplett ersetzen und die Daten per application/json senden ohne den Umweg über einen anderen Enctype gehen zu müssen. Und dafür muss ich serverseitig nicht eine einzige Zeile Code ändern. Genausogut könnte ich die Daten über proprietäre Enctypes senden wobei auch hier der serverseitige Code unverändert bleibt, sofern mein Parser den Enctype kennt -- D.h., daß ich meinen Parser um beliebige Content-Types erweitern kann.</p> <p>Das ist eine Sache die ich nicht von heute auf morgen entwickelt habe sondern über mehrere Jahre. Das Einzige an dem ich dabei festgehalten habe ist der Default Enctype.</p> <p>Ansonsten zeigt sich auch hier daß Schichtenmodelle (Layer) durchaus einen Sinn haben der hauptsächlich darin besteht, ebendiese Schichten transparent zu machen so als gäbe es sie gar nicht.</p> <p>MfG</p> Datenstrukturen aus Formulareingaben Sat, 28 Jul 18 04:12:46 Z https://forum.selfhtml.org/self/2018/jul/20/braucht-noch-wer-jquery/1727407#m1727407 https://forum.selfhtml.org/self/2018/jul/20/braucht-noch-wer-jquery/1727407#m1727407 <p>Tach! <a href="/users/27" class="mention registered-user" rel="noopener noreferrer">@dedlfix</a></p> <blockquote> <p>Ach, das ist dein Verständnisproblem. Der Konstruktor von URLSearchParams() kann nicht nur einen Querystring entgegennehmen, sondern auch eine Sequenz entgegennehmen, deren Elemente jeweils eine Sequenz von zwei Strings ist, also ein "Array of Arrays of two Strings". In Code ausgedrückt beispielsweise:</p> <p><code>[['foo', 'bar'], ['qux', 'baz'], ...]</code></p> </blockquote> <p>Ich frage mich wer auf solche Datenstrukturen kommt, zumal es sich ja um assoziierte Daten handelt <code>{Schlüssel: Wert}</code>. Das führt doch fast zwangsläufig eher hierzu:</p> <pre><code class="block language-js"><span class="token punctuation">[</span> <span class="token punctuation">{</span> <span class="token literal-property property">name</span><span class="token operator">:</span> <span class="token string">'foo'</span><span class="token punctuation">,</span> <span class="token literal-property property">value</span><span class="token operator">:</span> <span class="token string">'bar'</span> <span class="token punctuation">}</span><span class="token punctuation">,</span> <span class="token punctuation">{</span> <span class="token literal-property property">name</span><span class="token operator">:</span> <span class="token string">'foo'</span><span class="token punctuation">,</span> <span class="token literal-property property">value</span><span class="token operator">:</span> <span class="token string">'foo'</span> <span class="token punctuation">}</span><span class="token punctuation">,</span> <span class="token punctuation">{</span> <span class="token literal-property property">name</span><span class="token operator">:</span> <span class="token string">'qux'</span><span class="token punctuation">,</span> <span class="token literal-property property">value</span><span class="token operator">:</span> <span class="token string">'baz'</span> <span class="token punctuation">}</span><span class="token punctuation">,</span> <span class="token punctuation">]</span> </code></pre> <p>Wobei man hinsichtlich Default-Enctype die sich aus mehreren Werten ergebenden Arrays zusammenfassen kann:</p> <pre><code class="block language-js"><span class="token punctuation">{</span> <span class="token literal-property property">foo</span><span class="token operator">:</span> <span class="token punctuation">[</span><span class="token string">'foo'</span><span class="token punctuation">,</span><span class="token string">'bar'</span><span class="token punctuation">]</span><span class="token punctuation">,</span> <span class="token literal-property property">qux</span><span class="token operator">:</span> <span class="token punctuation">[</span><span class="token string">'baz'</span><span class="token punctuation">]</span> <span class="token punctuation">}</span> </code></pre> <p>So daß sich obenstehende schmale Datenstruktur ergibt ohne Redundanzen.</p> <p>Wie auch immer, URLSearchParams ist ja nicht das Problem und auch nicht die Lösung dafür, die Daten eines Formulars zu erfassen. Betrachtet man das <form>-Element selbst als Schnittstelle, so bietet das DOM schon eine Reihe an Möglichkeiten an die eingegebenen Daten zu kommen ohne daß man jedes Eingabefeld mit einer ID spicken muss.</p> <p>MfG</p> Braucht noch wer jQuery? Thu, 26 Jul 18 17:38:14 Z https://forum.selfhtml.org/self/2018/jul/20/braucht-noch-wer-jquery/1727355#m1727355 https://forum.selfhtml.org/self/2018/jul/20/braucht-noch-wer-jquery/1727355#m1727355 <p>Tach!</p> <blockquote> <p>Natürlich kann man das so machen. Also über FromData die Daten aus dem Formular holen, wiederherstellen als temporäre Datenstruktur und dann mit URLSearchParams einen anderen Enctype erzeugen.</p> </blockquote> <p>Da wird keine temporäre Datenstruktur erstellt. Man übergibt das FormData-Objekt an den Konstruktor von URLSearchParams. Das war's und alles andere findet browserintern statt.</p> <blockquote> <p>Das kann man aber auch gleich mit den Daten machen die man aus dem Formular bekommt.</p> </blockquote> <p>Aber warum? Es ist doch viel umständlicher, auf FormData zu verzichten und sich die Daten selbst zusammenzutragen.</p> <blockquote> <p>Oder man hat eine Universalmethode die eine universelle Datenstruktur erzeugt (z.B. ein JSArray mit JSObjekten) aus der man beliebige Enctypes machen kann.</p> </blockquote> <p>Ja, FormData. Ist universell genug, um damit alles machen zu können.</p> <blockquote> <p>Das war meine Empfehlung und genauso hab ich die auch selbst vor Jahren umgesetzt.</p> </blockquote> <p>Nun, dann kanst du ja deine Lösung etwas verschlanken, wenn du darin FormData als einen Teil verwendest. Für multipart/form-data brauchst du keinen Serialisierer, das machen XHR.send() und fetch() von selbst, wenn sie ein FormData-Objekt bekommen. Für application/www-x-form-urlencoded kannst du URLSearchParams nehmen, und für alles was du sonst noch so zu brauchen gedenkst, kann ebenfalls das iterierbare FormData wunderschön als Datenquelle dienen.</p> <blockquote> <p>Vor Allem in Hinblick auf mögliche Erweiterungen um weitere Enctypes von denen es unzählige gibt, heutige Browser jedoch nur ganze 2 davon kennen und implementiert haben.</p> </blockquote> <p>Über Erweiterungen mach ich mir keine großen Gedanken. Wenn die kommen, werden auch entsprechende Lösungen entwickelt werden.</p> <blockquote> <p>Mit meinen Libs kann ich z.B. $(form).serialize() komplett ersetzen und die Daten per application/json senden ohne den Umweg über einen anderen Enctype gehen zu müssen.</p> </blockquote> <p>Schön, aber diesen Umweg gibt es auch bei den vorgestellten Alternativen nicht.</p> <blockquote> <p>Das ist eine Sache die ich nicht von heute auf morgen entwickelt habe sondern über mehrere Jahre. Das Einzige an dem ich dabei festgehalten habe ist der Default Enctype.</p> </blockquote> <p>Nun, FormData und URLSearchParams kann man in deutlich kürzerer Zeit kennenlernen. Vielleicht bist du stolz darauf, damals alles von der Pike auf entwickelt zu haben. Ja klar, warum auch nicht? Aber wenn du dafür heute nur noch ein müdes Lächeln erntest, solltest du dich fragen, ob du dich nicht im Damals verfangen hast. Die aktuellen Möglichkeiten nicht zu verstehen, als Unsinn oder "gar nicht zur Debatte stehend" zu bezeichnen, macht die Sache jedenfalls nicht besser.</p> <blockquote> <p>Ansonsten zeigt sich auch hier daß Schichtenmodelle (Layer) durchaus einen Sinn haben der hauptsächlich darin besteht, ebendiese Schichten transparent zu machen so als gäbe es sie gar nicht.</p> </blockquote> <p>Das ist eine andere Baustelle. Es ging hier nicht um Anwendungsarchitektur, sondern nur um einen Ersatz für ein simples <code>jQuery(form).serialize()</code> zu finden. Wenn du nun mit Schichtenmodell um die Ecke kommst, dann kann ich dir erwidern, dass bei einer solchen Vorgehensweise - von einem String als Selector für das DOM direkt zu URL-Daten zu gehen - Schichten zusammengwürfelt werden, die man in aktuellen Anwendungen aus gutem Grund lieber trennt.</p> <p>dedlfix.</p> Braucht noch wer jQuery? Thu, 26 Jul 18 17:53:09 Z https://forum.selfhtml.org/self/2018/jul/20/braucht-noch-wer-jquery/1727356#m1727356 https://forum.selfhtml.org/self/2018/jul/20/braucht-noch-wer-jquery/1727356#m1727356 <p>Tach!</p> <blockquote> <blockquote> <p>Natürlich kann man das so machen. Also über FromData die Daten aus dem Formular holen, wiederherstellen als temporäre Datenstruktur und dann mit URLSearchParams einen anderen Enctype erzeugen.</p> </blockquote> </blockquote> <blockquote> <p>Da wird keine temporäre Datenstruktur erstellt. Man übergibt das FormData-Objekt an den Konstruktor von URLSearchParams. Das war's und alles andere findet browserintern statt.</p> </blockquote> <p>Nein, so funktioniert das nicht. URLSearchParams ist ein URL Utility das kann mit einem FormData Objekt überhaupt gar nichts anfangen! Hab ich aber auch schon geschrieben hier.</p> <blockquote> <blockquote> <p>Das kann man aber auch gleich mit den Daten machen die man aus dem Formular bekommt.</p> </blockquote> </blockquote> <blockquote> <p>Aber warum? Es ist doch viel umständlicher, auf FormData zu verzichten und sich die Daten selbst zusammenzutragen.</p> </blockquote> <p>Das mag auf den ersten Blick so aussehen. Betrachte jedoch das Schichtenmodell was ich beschrieben habe, das macht die Sache am Ende einfacher, transparent, wartungsfreundlich und skalierbar -- Das sind durchaus Punkte über die ein Programmierer nachdenken sollte.</p> <blockquote> <p>Ja, FormData. Ist universell genug, um damit alles machen zu können.</p> </blockquote> <p>Was soll denn an FormData universell sein!? Es hat in einem jeden Schichtenmodell einen festen Platz der mit dem Enctype multipart/form-data verbunden ist. Mitnichten ist eine solche Position universell sondern das Gegenteil.</p> <p>MfG</p> Braucht noch wer jQuery? Thu, 26 Jul 18 18:45:16 Z https://forum.selfhtml.org/self/2018/jul/20/braucht-noch-wer-jquery/1727357#m1727357 https://forum.selfhtml.org/self/2018/jul/20/braucht-noch-wer-jquery/1727357#m1727357 <p>Tach!</p> <blockquote> <blockquote> <p>Da wird keine temporäre Datenstruktur erstellt. Man übergibt das FormData-Objekt an den Konstruktor von URLSearchParams. Das war's und alles andere findet browserintern statt.</p> </blockquote> <p>Nein, so funktioniert das nicht. URLSearchParams ist ein URL Utility das kann mit einem FormData Objekt überhaupt gar nichts anfangen! Hab ich aber auch schon geschrieben hier.</p> </blockquote> <p>Ich würde Dir nur zu gerne zustimmen, aber dann hätten wir beide Unrecht, denn das kann es ganz ausgezeichnet.</p> <p>Ansonsten gehe ich auf den Rest nicht weiter ein. Auf konkret gestellte Fragen mit unkonkrete Antworten und mit Verweisen auf ein nicht öffentliches "mein Framework" bringen mich bei der Lösung aktueller Aufgabenstellungen nicht weiter.</p> <p>dedlfix.</p> Braucht noch wer jQuery? Thu, 26 Jul 18 20:21:08 Z https://forum.selfhtml.org/self/2018/jul/20/braucht-noch-wer-jquery/1727370#m1727370 https://forum.selfhtml.org/self/2018/jul/20/braucht-noch-wer-jquery/1727370#m1727370 <p>Hallo pl,</p> <blockquote> <p>Nein, so funktioniert das nicht. URLSearchParams ist ein URL Utility das kann mit einem FormData Objekt überhaupt gar nichts anfangen! Hab ich aber auch schon geschrieben hier.</p> </blockquote> <p>Durch rituelle Beschwörungen kann man vielleicht Götter oder Geister anlocken, aber in der Informatik verlassen wir uns eigentlich immer noch auf Fakten. </p> <p>LG,<br> CK</p> <div class="signature">-- <br> <a href="https://wwwtech.de/about" rel="noopener noreferrer">https://wwwtech.de/about</a> </div> Braucht noch wer jQuery? Thu, 26 Jul 18 20:03:37 Z https://forum.selfhtml.org/self/2018/jul/20/braucht-noch-wer-jquery/1727366#m1727366 https://forum.selfhtml.org/self/2018/jul/20/braucht-noch-wer-jquery/1727366#m1727366 <p>Hallo dedlfix,</p> <p>na endlich. Mein Zettel ist fertig.</p> <p>#BULLSHIT!</p> <p><em>Rolf</em></p> <div class="signature">-- <br> sumpsi - posui - clusi </div> Framework und serialize Fri, 27 Jul 18 04:39:32 Z https://forum.selfhtml.org/self/2018/jul/20/braucht-noch-wer-jquery/1727375#m1727375 https://forum.selfhtml.org/self/2018/jul/20/braucht-noch-wer-jquery/1727375#m1727375 <p>Tach!</p> <blockquote> <blockquote> <blockquote> <p>Da wird keine temporäre Datenstruktur erstellt. Man übergibt das FormData-Objekt an den Konstruktor von URLSearchParams. Das war's und alles andere findet browserintern statt.</p> </blockquote> <p>Nein, so funktioniert das nicht. URLSearchParams ist ein URL Utility das kann mit einem FormData Objekt überhaupt gar nichts anfangen! Hab ich aber auch schon geschrieben hier.</p> </blockquote> <p>Ich würde Dir nur zu gerne zustimmen, aber dann hätten wir beide Unrecht, denn das kann es ganz ausgezeichnet.</p> </blockquote> <p>Dann Zeige Du doch mal in Stück CODE der funktioniert! Dein URLSearchParams(formData).to String() liefert Müll! Alternativ kannst Du auch die Doku zeigen wo geschrieben steht daß man URLSearchParams ein FormData Objekt übergeben kann!</p> <p><a href="https://developer.mozilla.org/de/docs/Web/API/URLSearchParams" rel="nofollow noopener noreferrer">Hier</a> steht jedenfalls nichts dergleichen.</p> <p>Vielmehr steht da: <strong>Das URLSearchParams Interface definiert Hilfsmethoden um mit dem Query-String einer URL zu arbeiten.</strong></p> <p>Mitnichten also steht da was von FormData!</p> <blockquote> <p>Ansonsten gehe ich auf den Rest nicht weiter ein. Auf konkret gestellte Fragen mit unkonkrete Antworten und mit Verweisen auf ein nicht öffentliches "mein Framework" bringen mich bei der Lösung aktueller Aufgabenstellungen nicht weiter.</p> </blockquote> <p><strong>Welches Framework denn!? Hier geht es um Ersatz für jQuery(form).serialize() -- also bitte beim Thema bleiben!</strong></p> <p>Hier geht es darum, wie man einen Query-String, also den Default Enctype erzeugt mit Daten die in einem Formular vorliegen! Warum fängst Du da immer wieder von <strong>meinem Framework</strong> an!?</p> <p>MfG</p> Braucht noch wer jQuery? Thu, 26 Jul 18 20:07:04 Z https://forum.selfhtml.org/self/2018/jul/20/braucht-noch-wer-jquery/1727368#m1727368 https://forum.selfhtml.org/self/2018/jul/20/braucht-noch-wer-jquery/1727368#m1727368 <p>Hallo Rolf B,</p> <blockquote> <p>Hallo dedlfix,</p> <p>na endlich. Mein Zettel ist fertig.</p> <p>#BULLSHIT!</p> <p><em>Rolf</em></p> </blockquote> <p>??</p> <p>Bis demnächst<br> Matthias</p> <div class="signature">-- <br> Rosen sind rot. </div> Braucht noch wer jQuery? Fri, 27 Jul 18 05:38:14 Z https://forum.selfhtml.org/self/2018/jul/20/braucht-noch-wer-jquery/1727378#m1727378 https://forum.selfhtml.org/self/2018/jul/20/braucht-noch-wer-jquery/1727378#m1727378 <p><a href="/users/6547" class="mention registered-user" rel="noopener noreferrer">@Rolf B</a></p> <p>den SELF WIKI Artikel Kontextwechsel bez. Overload überarbeiten ist eine sehr gute Idee!!</p> <p>MfG</p> Braucht noch wer jQuery? Thu, 26 Jul 18 20:19:45 Z https://forum.selfhtml.org/self/2018/jul/20/braucht-noch-wer-jquery/1727369#m1727369 https://forum.selfhtml.org/self/2018/jul/20/braucht-noch-wer-jquery/1727369#m1727369 <p>Hallo Matthias,</p> <blockquote> <blockquote> <p>na endlich. Mein Zettel ist fertig.</p> <p>#BULLSHIT!</p> </blockquote> <p>??</p> </blockquote> <p>Du kennst <a href="https://www.bullshitbingo.net/cards/bullshit/" rel="nofollow noopener noreferrer">Bullshit Bingo</a> nicht? </p> <p>LG,<br> CK</p> <div class="signature">-- <br> <a href="https://wwwtech.de/about" rel="noopener noreferrer">https://wwwtech.de/about</a> </div> Braucht noch wer jQuery? Thu, 26 Jul 18 20:46:30 Z https://forum.selfhtml.org/self/2018/jul/20/braucht-noch-wer-jquery/1727373#m1727373 https://forum.selfhtml.org/self/2018/jul/20/braucht-noch-wer-jquery/1727373#m1727373 <p>Hallo Christian Kruse,</p> <blockquote> <p>Du kennst <a href="https://www.bullshitbingo.net/cards/bullshit/" rel="nofollow noopener noreferrer">Bullshit Bingo</a> nicht? </p> </blockquote> <p>Doch. Jetzt wieder. "mein Framework" hat also noch gefehlt.</p> <p>Bis demnächst<br> Matthias</p> <div class="signature">-- <br> Rosen sind rot. </div> Framework und serialize Fri, 27 Jul 18 05:17:32 Z https://forum.selfhtml.org/self/2018/jul/20/braucht-noch-wer-jquery/1727377#m1727377 https://forum.selfhtml.org/self/2018/jul/20/braucht-noch-wer-jquery/1727377#m1727377 <p>Tach!</p> <blockquote> <p>Dann Zeige Du doch mal in Stück CODE der funktioniert!</p> </blockquote> <p>Habe ich, mehrfach.</p> <blockquote> <p>Dein URLSearchParams(formData).to String() liefert Müll!</p> </blockquote> <p>Das ist deine Behauptung, die du nicht mit entsprechendem Code unterlegt hast. Und deine Ausgabe hat auch nicht zu den bisherigen Code-Beispielen gepasst.</p> <blockquote> <p>Alternativ kannst Du auch die Doku zeigen wo geschrieben steht daß man URLSearchParams ein FormData Objekt übergeben kann!</p> </blockquote> <p>Das steht nicht explizit drin, aber das ergibt sich aus den zulässigen Parameteren für den Konstruktor von URLSearchParams und dem Verhalten von FormData. Hab ich aber <a href="https://forum.selfhtml.org/self/2018/jul/20/braucht-noch-wer-jquery/1727347#m1727347" rel="noopener noreferrer">auch schon dargelegt</a>, warum das zusammenarbeitet.</p> <p><a href="https://developer.mozilla.org/en-US/docs/Web/API/URLSearchParams/URLSearchParams" rel="nofollow noopener noreferrer">In der MDN</a> ist es leider ungenau beschrieben, da steht "a sequence of USVStrings". (USVString kann man gedanklich mit String übersetzen, der Unterschied ist hier nicht weiter relevant.) Aber im dritten Teil des Beispiels sieht man, dass es eigentlich "a sequence of a sequence of two USVStrings" ist. Wenn man dem Link zur <a href="https://url.spec.whatwg.org/#interface-urlsearchparams" rel="nofollow noopener noreferrer">Spezifikation</a> folgt, der auf der <a href="https://developer.mozilla.org/en-US/docs/Web/API/URLSearchParams" rel="nofollow noopener noreferrer">Seite zum URLSearchParams-Objekt</a> zu finden ist, sieht man ebenfalls, dass der Konstruktor ein <code><sequence<sequence<USVString>></code> akzeptiert. Im Fließtext ist dann auch noch spezifiziert, dass die Paare in den inneren Arrays genau zwei Items enthalten müssen, sonst wird eine Exception geworfen.</p> <p>Seitens <a href="https://developer.mozilla.org/en-US/docs/Web/API/FormData" rel="nofollow noopener noreferrer">FormData</a> sind die entscheidenden Teile zum einen der Satz: „An object implementing FormData can directly be used in a for...of structure, instead of entries()“. Iterieren über ein FormData-Objekt verhält sich also gleich wie das Ergebnis der Methode entries(). Bei <a href="https://developer.mozilla.org/en-US/docs/Web/API/FormData/entries" rel="nofollow noopener noreferrer">entries()</a> liest man dann gleich in der Einleitung: "The FormData.entries() method returns an iterator allowing to go through all key/value pairs contained in this object. The key of each pair is a USVString object; the value either a USVString, or a Blob." Abgesehen vom Blob, das man wohl kaum an eine URL hängen möchte, ist diese Iterator-Funktionalität also genau das, was <code><sequence<sequence<USVString>></code> entspricht. Damit akzeptiert URLSearchParams also auch etwas, das sich wie FormData verhält, mithin kann man also abgekürzt sagen, dass man URLSearchParams ein FormData übergeben kann. JavaScript funktioniert üblicherweise nach dem Duck-Typing-Prinzip, die Dinge müssen nicht exakt von einem bestimmten Typ sein, sondern sich lediglich nach einem bestimmten Muster verhalten. Und das ist in dem Fall gegeben.</p> <p>dedlfix.</p> FromData toString und Kontextwechsel Fri, 27 Jul 18 06:03:26 Z https://forum.selfhtml.org/self/2018/jul/20/braucht-noch-wer-jquery/1727380#m1727380 https://forum.selfhtml.org/self/2018/jul/20/braucht-noch-wer-jquery/1727380#m1727380 <p>Tach!</p> <blockquote> <p>Entscheidend ist der Kontextwechsel! Und bei <code>xhr.send(formdata)</code> heißt der Kontext String.</p> </blockquote> <p>Das kann ich nicht als richtig akzeptieren. Die MDN führt eine ganze Reihe von Dingen auf, die <a href="https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest/send" rel="nofollow noopener noreferrer">XHR.send()</a> akzeptiert.</p> <p>A body of data to be sent in the XHR request. This can be:</p> <ul> <li>A Document, in which case it is serialized before being sent.</li> <li>A BodyInit, which as per the Fetch spec can be a Blob, BufferSource, FormData, URLSearchParams, ReadableStream, or USVString object.</li> </ul> <p>String ist nur eine der Möglichkeiten. Und selbst wenn alles nach String konvertiert werden würde, <em>und</em> das von den jeweils übergebenen Objekten selbst gemacht werden würde, wäre da doch deren toString() zuständig. Und das liefert bei FormData lediglich das, was FormData von Object geerbt hat, ein unbrauchbares <code>"[object FormData]"</code>.</p> <p>Der Rest wird dann auch nicht mehr wahrer.</p> <blockquote> <p>Meine oben verlinkte Anwendung zeigt es doch.</p> </blockquote> <p>Sie zeigt das überhaupt nicht. Sie zeigt lediglich eine Art Blackbox, die wie gewünscht arbeitet. Aber dass sie intern das von dir beschriebene Verhalten bezüglich FormData an den Tag legen würde, zeigt sie mitnichten.</p> <blockquote> <p>Und <a href="http://rolfrost.de/formdown.html" rel="nofollow noopener noreferrer">hier</a> in einer anderen Anwendung zeige ich Dir den umgekehrten Fall welchen die fetchAPI ermöglicht: Aus der Response die mit dem Enctype multipart/form-data gesendet wurde, eine FormData Instanz wiederherzustellen.</p> </blockquote> <p>Das ist zwar irrelevant, beweist aber auch nichts. Dass Response.formData() letztlich ein FormData liefert, heißt noch lange nicht, dass FormData selbst eine Umwandlung durchführen würde. Dazu sehe ich in der FormData-Dokumentation keinerlei Hinweise, dass es ein solches Verhalten hat. Auch nimmt der Konstruktor lediglich ein HTMLFormElement entgegen und keine Response. Das FormData-Objekt wird also wohl lediglich zu Fuß über append()-Aufrufe gefüllt werden, egal wer nun die konkrete Dekodierung des Response-Strings vornimmt. append() nimmt bereits fertige Paare aus Key (Strings) und Values (String oder Blob) entgegen. Es sieht also nicht danach aus, dass FormData eine vollständige Response dekodieren würde.</p> <blockquote> <p>Das ist ja auch der Sinn von OOP interne Vorgänge über genau definierte Schnittstellen nach draußen zu reichen und zwar so daß sich in Anwender nicht darum kümmern muss was intern abläuft.</p> </blockquote> <p>Es ist auch nicht Sinn der OOP, über interne Dinge, die nicht außen sichtbar sind, Mutmaßungen anzustellen, die sich nicht mit dem Rest der sichtbaren Dinge decken.</p> <blockquote> <p>Nun, daß FormData eine Methode <code>toString()</code> nicht bereitstellt, heißt ja noch lange nicht, daß es eine Solche nicht gibt. Wer schon einmal OO entwickelt hat, wird jedoch wissen, daß es public und private Methods gibt.</p> </blockquote> <p>Ja natürlich. Weil man private Methoden ja auch so wunderbar von außen aufrufen kann. Nicht.</p> <blockquote> <p>Den Overload hier im Detail zu erklären würde jedoch schon sehr am Thema vorbeigehen. Aber zum Thema Kontextechsel gibt es ja einen Artikel in Eurem Wiki.</p> </blockquote> <p>Schade, ich dachte, da kommt noch was Fundiertes außer nicht nachvollziehbaren Mutmaßungen und fehlerhaften Aussagen. Bis zu der Stelle, was der Wiki-Artikel beschreibt, sind wir gar nicht gekommen. Deine Beweisführung brach schon vorher in sich zusammen.</p> <p>dedlfix.</p> FromData toString und Kontextwechsel Fri, 27 Jul 18 10:27:41 Z https://forum.selfhtml.org/self/2018/jul/20/braucht-noch-wer-jquery/1727388#m1727388 https://forum.selfhtml.org/self/2018/jul/20/braucht-noch-wer-jquery/1727388#m1727388 <p>Hallo pl</p> <blockquote> <p>Wer schon einmal OO entwickelt hat, wird jedoch wissen, daß es public und private Methods gibt.</p> </blockquote> <p>Wer schon in mehr als einer Sprache OO entwickelt hat, wird wahrscheinlich wissen, dass nicht jede objektorientierte Programmiersprache auch Mechanismen für die Kapselung von Daten bereitstellt. In ECMAScript gibt es bis dato keine Möglichkeit, den Zugriff auf Eigenschaften und Methoden durch entsprechende Syntax zu beschränken.</p> <p>Gleiches gilt im Übrigen für Python. Auch hier gilt, dass Eigenschaften und Methoden prinzipiell von außerhalb angesprochen, beziehungsweise aufgerufen werden können. Eine Abgrenzung zwischen öffentlicher Schnittstelle und interner Implementierung erfolgt hier im Wesentlichen über Namenskonventionen. Soll eine Eigenschaft oder Methode privat sein, wird ihrem Namen ein Unterstrich vorangestellt.</p> <pre><code class="block language-python"><span class="token keyword">class</span> <span class="token class-name">Container</span><span class="token punctuation">:</span> <span class="token keyword">def</span> <span class="token function">__init__</span><span class="token punctuation">(</span>self<span class="token punctuation">)</span><span class="token punctuation">:</span> self<span class="token punctuation">.</span>__data <span class="token operator">=</span> <span class="token punctuation">[</span><span class="token punctuation">]</span> <span class="token keyword">def</span> <span class="token function">_internal_method</span><span class="token punctuation">(</span>self<span class="token punctuation">)</span><span class="token punctuation">:</span> <span class="token keyword">pass</span> Container<span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">.</span>__data<span class="token punctuation">.</span>append<span class="token punctuation">(</span><span class="token string">'value'</span><span class="token punctuation">)</span> <span class="token comment"># AttributeError</span> </code></pre> <p>Python besitzt allerdings einen Mechanismus namens <em lang="en">Name Mangling</em>. Wird ein Eigenschafts- oder Methodenname wie in dem Beispiel oben mit zwei Unterstrichen geprefixt, statt bloß mit einem, dann kann die Eigenschaft oder Methode von außerhalb des Objektes nur durch explizite Angabe des Klassennamens referenziert werden.</p> <pre><code class="block language-python">Container<span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">.</span>_Container__data<span class="token punctuation">.</span>append<span class="token punctuation">(</span><span class="token string">'value'</span><span class="token punctuation">)</span> </code></pre> <p>Darüber hinaus gibt es in vielen Programmiersprachen Möglichkeiten, Funktionen die nicht Teil der öffentlichen Schnittstelle sind, in Namensräumen zu kapseln. Das kann ein Modul sein, das standardmäßig nur die Klasse selbst exportiert, nicht jedoch die im globalen Gültigkeitsbereich definierten internen Funktionen, oder ein Funktionsabschluss, wie im folgenden ECMAScript-Beispiel.</p> <pre><code class="block language-javascript"><span class="token keyword">const</span> <span class="token function-variable function">Stack</span> <span class="token operator">=</span> <span class="token keyword">function</span><span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token punctuation">{</span> <span class="token keyword">const</span> data <span class="token operator">=</span> <span class="token punctuation">[</span><span class="token punctuation">]</span><span class="token punctuation">;</span> <span class="token comment">// push and pop can access data via closure</span> <span class="token keyword">return</span> <span class="token keyword">class</span> <span class="token class-name">Stack</span> <span class="token punctuation">{</span> <span class="token function">push</span><span class="token punctuation">(</span><span class="token parameter">value</span><span class="token punctuation">)</span> <span class="token punctuation">{</span> <span class="token keyword">return</span> data<span class="token punctuation">.</span><span class="token function">push</span><span class="token punctuation">(</span>value<span class="token punctuation">)</span><span class="token punctuation">,</span> <span class="token keyword">this</span><span class="token punctuation">;</span> <span class="token punctuation">}</span> <span class="token function">pop</span><span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token punctuation">{</span> <span class="token keyword">return</span> data<span class="token punctuation">.</span><span class="token function">pop</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token punctuation">}</span> <span class="token punctuation">}</span><span class="token punctuation">;</span> <span class="token punctuation">}</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token keyword">new</span> <span class="token class-name">Stack</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">.</span><span class="token function">push</span><span class="token punctuation">(</span><span class="token string">'value'</span><span class="token punctuation">)</span><span class="token punctuation">.</span><span class="token function">pop</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token comment">// 'value'</span> </code></pre> <p>Hier wird ein unmittelbar aufgerufener Funktionsausdruck dazu genutzt, das in der Konstante hinterlegte Array vor unbefugten Zugriffen zu schützen. Die Methoden push und pop können auch nach der Abarbeitung der äußeren anonymen Funktion über die <em lang="en">Scope Chain</em> auf das Array zugreifen, Code von außerhalb jedoch nicht.</p> <p>Gruß,</p> <p>Orlok</p> <div class="signature">-- <br> „Dance like it hurts.<br> Make love like you need money.<br> Work when people are watching.“ — Dogbert </div> Schlechter Programmierstil Fri, 27 Jul 18 05:40:59 Z https://forum.selfhtml.org/self/2018/jul/20/braucht-noch-wer-jquery/1727379#m1727379 https://forum.selfhtml.org/self/2018/jul/20/braucht-noch-wer-jquery/1727379#m1727379 <p>Ach übrigens:</p> <p><a href="https://forum.selfhtml.org/self/2018/jul/20/braucht-noch-wer-jquery/1727294#m1727294" rel="noopener noreferrer">Deine Worte</a> -- Schlechter Stil.</p> <p>Dieses Thema weiter zu verfolgen ist nicht sinnvoll!</p> <p>Dein Ansatz mit <code>Array.from..</code> hingegen ist da schon zielführender wenn es um einen Ersatz von jQuery(form).serialize() geht.</p> <p>MfG</p> Braucht noch wer jQuery? Fri, 27 Jul 18 06:11:16 Z https://forum.selfhtml.org/self/2018/jul/20/braucht-noch-wer-jquery/1727381#m1727381 https://forum.selfhtml.org/self/2018/jul/20/braucht-noch-wer-jquery/1727381#m1727381 <p>Tach!</p> <blockquote> <p>den SELF WIKI Artikel Kontextwechsel bez. Overload überarbeiten ist eine sehr gute Idee!!</p> </blockquote> <p>Finde ich nicht. Wie konkret bestimmte Datentypen in andere umgewandelt werden und welche Methoden dafür in konkreten Programmiersprachen aufzurufen sind, liegt nicht im Rahmen des Artikels. Um das Prinzip zu beschreiben, was beim Einfügen von Daten in andere Daten zu beachten ist, braucht man kein Overload oder bestimmte Programmierparadigmen.</p> <p>dedlfix.</p> FromData toString und Kontextwechsel Sat, 28 Jul 18 05:39:22 Z https://forum.selfhtml.org/self/2018/jul/20/braucht-noch-wer-jquery/1727411#m1727411 https://forum.selfhtml.org/self/2018/jul/20/braucht-noch-wer-jquery/1727411#m1727411 <p>Tach!</p> <blockquote> <blockquote> <p>Entscheidend ist der Kontextwechsel! Und bei <code>xhr.send(formdata)</code> heißt der Kontext String.</p> </blockquote> <p>Das kann ich nicht als richtig akzeptieren. Die MDN führt eine ganze Reihe von Dingen auf, die <a href="https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest/send" rel="nofollow noopener noreferrer">XHR.send()</a> akzeptiert.</p> <p>A body of data to be sent in the XHR request. This can be:</p> <ul> <li>A Document, in which case it is serialized before being sent.</li> <li>A BodyInit, which as per the Fetch spec can be a Blob, BufferSource, FormData, URLSearchParams, ReadableStream, or USVString object.</li> </ul> <p>String ist nur eine der Möglichkeiten.</p> </blockquote> <p>Abstrakt gesehen ist das alles <code>Stringkontext</code>, auch der Blob. Allgemein handelt es sich um Bytesequenzen und somit kommen wir wieder zum Wirth'schen Dateibegriff ohne den es mp3 gar nicht geben würde.</p> <p>Aber zurück zu den Sequenzen, ein <code>xhr.send(blob)</code> bewirkt, daß in STDIN serverseitig eine Bytesequenz zu lesen ist. Dasselbe bei <code>xhr.send('äöü')</code> und natürlich auch wenn ein ArrayBuffer gesendet wird.</p> <p>Selbst in JS kann man zwischen Blob, USVString ArrayBuffer vermitteln, <code>new Blob(['äöü']);</code> als Beispiel.</p> <p>Für uns als Informationstechniker ist das Entscheidende an den von Dir o.g. Datentypen, daß der Informationsgehalt derselbe ist. Und genau das zeigen die von mir verlinkten Anwendungen!</p> <p>Und dahinter steckt eben der Fakt, daß Daten nicht als Objekte, Arrays, Blob usw, übertragen werden sondern grundsätzlich als Bytesequenzen. Wenn man serverseitig also ein <code>äöü</code> in STDIN bekommt, ist es unerheblich ob diese Sequenz aus der Sicht von JS als Blob, File, ArrayBuffer oder String gesendet wurde, der Inhalt ist absolut derselbe.</p> <p>Umgekehrt ist das ganz analog: Eine serverseitige gesendete Sequenz <code>äöü</code> kann JS im Browser als Blob, File, ArrayBuffer oder als Text/String empfangen und, wie bereits dargelegt, die FetchAPI kann aus einem Messagebody sogar ein FormData Objekt erstellen.</p> <p>Also ich denke schon, daß der Begriff <code>Stringkontext</code> hier trefflich passt. Letztendlich sind das ja auch alles grundsätzliche Dinge die sich in der IT über Jahrzehnte entwickelt haben und nicht auf meinem Desktop. Inwieweit zwischen String und Bytesequenz unterschieden wird, daß regeln die einzelnen Programmiersprachen, somit ist das überhaupt ein Streitthema.</p> <p>Und selbst wenn hierfür einmal nicht der exakte Fachbegriff benutzt würde, so sollte doch wenigstens klar sein worum es geht.</p> <p>MfG</p> FromData toString und Kontextwechsel Sat, 28 Jul 18 05:54:38 Z https://forum.selfhtml.org/self/2018/jul/20/braucht-noch-wer-jquery/1727412#m1727412 https://forum.selfhtml.org/self/2018/jul/20/braucht-noch-wer-jquery/1727412#m1727412 <p>hi,</p> <blockquote> <p>Gleiches gilt im Übrigen für Python. Auch hier gilt, dass Eigenschaften und Methoden prinzipiell von außerhalb angesprochen, beziehungsweise aufgerufen werden können. Eine Abgrenzung zwischen öffentlicher Schnittstelle und interner Implementierung erfolgt hier im Wesentlichen über Namenskonventionen. Soll eine Eigenschaft oder Methode privat sein, wird ihrem Namen ein Unterstrich vorangestellt.</p> </blockquote> <p>Das ist in Perl genauso. Und was Overload betrifft: <a href="http://rolfrost.de/tostring.html" rel="nofollow noopener noreferrer">toString()</a> und das kann man übrigens auch mit FileHandles machen. Beispielsweise so, daß ein <code>print $fh</code> den Inhalt der Datei ausgibt auf welcher das Handle erstellt wurde. Und in Perl ist es seit Jahren Best Practice daß Funktionen sowohl mit Dateinamen als auch mit Handles gleichermaßen operieren, siehe auch <> (Diamond OP).</p> <p>Aber schön daß Du es ansprichst, gerade den Stringkontext kann man mit OOP/Overload nämlich sehr zweckmäßig implementieren.</p> <p>Das wäre auch ein Thema für den SELF Wiki, <a href="https://forum.selfhtml.org/self/2018/jul/20/braucht-noch-wer-jquery/1727378#m1727378" rel="noopener noreferrer">Vorschlag ist hier</a></p> <p>MfG</p> FromData toString und Kontextwechsel Sun, 29 Jul 18 12:43:50 Z https://forum.selfhtml.org/self/2018/jul/20/braucht-noch-wer-jquery/1727516#m1727516 https://forum.selfhtml.org/self/2018/jul/20/braucht-noch-wer-jquery/1727516#m1727516 <p>Moin Orlok,</p> <p>zwei Fragen:</p> <blockquote> <pre><code class="block language-python"><span class="token keyword">class</span> <span class="token class-name">Container</span><span class="token punctuation">:</span> <span class="token keyword">def</span> <span class="token function">__init__</span><span class="token punctuation">(</span>self<span class="token punctuation">)</span><span class="token punctuation">:</span> self<span class="token punctuation">.</span>__data <span class="token operator">=</span> <span class="token punctuation">[</span><span class="token punctuation">]</span> <span class="token keyword">def</span> <span class="token function">_internal_method</span><span class="token punctuation">(</span>self<span class="token punctuation">)</span><span class="token punctuation">:</span> <span class="token keyword">pass</span> Container<span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">.</span>__data<span class="token punctuation">.</span>append<span class="token punctuation">(</span><span class="token string">'value'</span><span class="token punctuation">)</span> <span class="token comment"># AttributeError</span> </code></pre> <p>Python besitzt allerdings einen Mechanismus namens <em lang="en">Name Mangling</em>. Wird ein Eigenschafts- oder Methodenname wie in dem Beispiel oben mit zwei Unterstrichen geprefixt, statt bloß mit einem, dann kann die Eigenschaft oder Methode von außerhalb des Objektes nur durch explizite Angabe des Klassennamens referenziert werden.</p> <pre><code class="block language-python">Container<span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">.</span>_Container__data<span class="token punctuation">.</span>append<span class="token punctuation">(</span><span class="token string">'value'</span><span class="token punctuation">)</span> </code></pre> </blockquote> <p>Fehlt hier nicht irgendwo ein Punkt, z.B. <code class="language-python">Container<span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">.</span>Container<span class="token punctuation">.</span>__data<span class="token punctuation">.</span>append<span class="token punctuation">(</span><span class="token string">'value'</span><span class="token punctuation">)</span></code>?</p> <blockquote> <pre><code class="block language-javascript"><span class="token keyword">const</span> <span class="token function-variable function">Stack</span> <span class="token operator">=</span> <span class="token keyword">function</span><span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token punctuation">{</span> <span class="token keyword">const</span> data <span class="token operator">=</span> <span class="token punctuation">[</span><span class="token punctuation">]</span><span class="token punctuation">;</span> <span class="token comment">// push and pop can access data via closure</span> <span class="token keyword">return</span> <span class="token keyword">class</span> <span class="token class-name">Stack</span> <span class="token punctuation">{</span> <span class="token function">push</span><span class="token punctuation">(</span><span class="token parameter">value</span><span class="token punctuation">)</span> <span class="token punctuation">{</span> <span class="token keyword">return</span> data<span class="token punctuation">.</span><span class="token function">push</span><span class="token punctuation">(</span>value<span class="token punctuation">)</span><span class="token punctuation">,</span> <span class="token keyword">this</span><span class="token punctuation">;</span> <span class="token punctuation">}</span> <span class="token function">pop</span><span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token punctuation">{</span> <span class="token keyword">return</span> data<span class="token punctuation">.</span><span class="token function">pop</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token punctuation">}</span> <span class="token punctuation">}</span><span class="token punctuation">;</span> <span class="token punctuation">}</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token keyword">new</span> <span class="token class-name">Stack</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">.</span><span class="token function">push</span><span class="token punctuation">(</span><span class="token string">'value'</span><span class="token punctuation">)</span><span class="token punctuation">.</span><span class="token function">pop</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token comment">// 'value'</span> </code></pre> </blockquote> <p>Man kann das innere <code>data</code>-Array verändern, obwohl es <code class="language-js"><span class="token keyword">const</span></code> ist?</p> <p>Viele Grüße<br> Robert</p> Datenstrukturen aus Formulareingaben Sat, 28 Jul 18 06:06:16 Z https://forum.selfhtml.org/self/2018/jul/20/braucht-noch-wer-jquery/1727413#m1727413 https://forum.selfhtml.org/self/2018/jul/20/braucht-noch-wer-jquery/1727413#m1727413 <p>Tach!</p> <blockquote> <blockquote> <p><code>[['foo', 'bar'], ['qux', 'baz'], ...]</code></p> </blockquote> <p>Ich frage mich wer auf solche Datenstrukturen kommt, zumal es sich ja um assoziierte Daten handelt <code>{Schlüssel: Wert}</code>. Das führt doch fast zwangsläufig eher hierzu:</p> <pre><code class="block language-js"><span class="token punctuation">[</span> <span class="token punctuation">{</span> <span class="token literal-property property">name</span><span class="token operator">:</span> <span class="token string">'foo'</span><span class="token punctuation">,</span> <span class="token literal-property property">value</span><span class="token operator">:</span> <span class="token string">'bar'</span> <span class="token punctuation">}</span><span class="token punctuation">,</span> <span class="token punctuation">{</span> <span class="token literal-property property">name</span><span class="token operator">:</span> <span class="token string">'foo'</span><span class="token punctuation">,</span> <span class="token literal-property property">value</span><span class="token operator">:</span> <span class="token string">'foo'</span> <span class="token punctuation">}</span><span class="token punctuation">,</span> <span class="token punctuation">{</span> <span class="token literal-property property">name</span><span class="token operator">:</span> <span class="token string">'qux'</span><span class="token punctuation">,</span> <span class="token literal-property property">value</span><span class="token operator">:</span> <span class="token string">'baz'</span> <span class="token punctuation">}</span><span class="token punctuation">,</span> <span class="token punctuation">]</span> </code></pre> </blockquote> <p>Diese Struktur ist auch nicht viel besser. Ob man nun statt numerischen Schlüsseln benannte hat, macht das Kraut am Ende nicht fett. Wenn schon weniger komplex, dann eher so:</p> <pre><code class="block language-javascript"><span class="token punctuation">{</span> <span class="token string-property property">'foo'</span><span class="token operator">:</span> <span class="token string">'bar'</span><span class="token punctuation">,</span> <span class="token string-property property">'foo'</span><span class="token operator">:</span> <span class="token string">'foo'</span><span class="token punctuation">,</span> <span class="token string-property property">'qux'</span><span class="token operator">:</span> <span class="token string">'baz'</span> <span class="token punctuation">}</span> </code></pre> <p>Das Problem in diesem Fall ist aber Möglichkeit, dass Schlüsselwerte mehrfach auftreten können und sich damit überschreiben. Ein Record mit einfachen Schlüssel-Wert-Paaren kann also nicht alle Situationen abbilden. Das eben gezeigte Beispiel hat dieses Problem beim foo. Diese Struktur ist also auf diese Weise nicht zielführend.</p> <p>Tatsächlich kann man aber eine solche Struktur (dann aber ohne Dopplungen) ebenfalls dem URLSearchParams-Konstruktor übergeben. Die nützt uns aber in der bisherigen Diskussion nichts, weil sie auf diese Weise nicht von FormData kommt und zudem den genannten Nachteil hat. Werden die Daten aber auf anderem Wege als über FormData ermittelt/erzeugt, und es können im Anwendungsfall keine Dopplungen auftreten, dann ist das durchaus eine geeignetere Struktur.</p> <blockquote> <p>Wobei man hinsichtlich Default-Enctype die sich aus mehreren Werten ergebenden Arrays zusammenfassen kann:</p> </blockquote> <p>Der Enctype hat an dieser Stelle nichts in der Diskussion verloren, es geht erstmal nur um eine sinnvolle Datenstruktur. Ich wüsste auch nicht, wie genau der Enctype hier eine Hilfestellung sein soll, um dann zu dieser folgenden Struktur zu kommen, denn schließlich müssen die Werte auf dem Transportweg einzeln und mit jeweils eigenem Key aufgeführt werden und nicht pro Key zusammengefasst.</p> <blockquote> <pre><code class="block language-js"><span class="token punctuation">{</span> <span class="token literal-property property">foo</span><span class="token operator">:</span> <span class="token punctuation">[</span><span class="token string">'foo'</span><span class="token punctuation">,</span><span class="token string">'bar'</span><span class="token punctuation">]</span><span class="token punctuation">,</span> <span class="token literal-property property">qux</span><span class="token operator">:</span> <span class="token punctuation">[</span><span class="token string">'baz'</span><span class="token punctuation">]</span> <span class="token punctuation">}</span> </code></pre> </blockquote> <p>Eine solche Zusammenfassung kann auch problematisch sein, weil damit die bisherige Ordnung durcheinandergebracht wird, beispielsweise wenn das Element für das zweite foo im DOM nach dem qux steht. Das mag für einige Anwendungen kein Problem sein. Die HTML-Spec, so wie ich sie verstehe, definiert jedoch, dass Paare in tree order aufgeführt werden sollen. <a href="https://www.w3.org/TR/html/sec-forms.html#sec-constructing-the-form-data-set" rel="nofollow noopener noreferrer">Constructing the form data set</a>: „Let controls be a list of all the submittable elements whose form owner is form, in tree order.“ Eine Definition von tree order habe ich nicht gefunden, gehe aber davon aus, dass es das ist, was ich meine, also die Reihenfolge im Baum, wenn Kinder eines Zweiges in geordneter Reihenfolge vorliegen. Jedenfalls kann es dem Browser egal sein, ob irgendwelche Anwendungen die Daten in anderer Anordnung weiterverarbeiten. Eine Umsortierung wäre nämlich ebenfalls problematisch für einige Fälle.</p> <p>Der nächste Nachteil an dieser zusammenfassenden Struktur ist, dass sie nun nicht mehr einfach umgeformt werden kann. Man muss zusätzlich beachten, ob die Werte skalar sind oder eine Sequenz und dann jeweils unterschiedlichen Code ausführen.</p> <p>Allein diese beiden Punkte betrachtend, kann man zu dem Schluss kommen, dass die erste Struktur doch nicht ganz so dumm ist, wie sie auf den ersten Blick erscheinen mag. Sie hat keine Probleme mit doppelten Schlüsseln, behält die Reihenfolge bei und lässt sich einfach ohne Verzweigung durchlaufen und umformen.</p> <blockquote> <p>So daß sich obenstehende schmale Datenstruktur ergibt ohne Redundanzen.</p> </blockquote> <p>Ja, schlank ist sie, erkauft sich das aber über die genannten anderen Eigenschaften/Nachteile.</p> <blockquote> <p>Wie auch immer, URLSearchParams ist ja nicht das Problem und auch nicht die Lösung dafür, die Daten eines Formulars zu erfassen.</p> </blockquote> <p>Das stand sowieso nicht zur Debatte, dafür gibts ja FormData. Und dass URLSearchParams nicht nur die FormData-Struktur verarbeiten kann, geht aus der Dokumentation hervor.</p> <blockquote> <p>Betrachtet man das <form>-Element selbst als Schnittstelle, so bietet das DOM schon eine Reihe an Möglichkeiten an die eingegebenen Daten zu kommen ohne daß man jedes Eingabefeld mit einer ID spicken muss.</p> </blockquote> <p>Also dafür hätte ich eine ganz einfache Möglichkeit anzubieten: ein FormData-Objekt. Hab ich, glaube ich, auch schon ein oder zweimal erwähnt. </p> <p>dedlfix.</p> Datenstrukturen aus Formulareingaben Mon, 30 Jul 18 08:53:40 Z https://forum.selfhtml.org/self/2018/jul/20/braucht-noch-wer-jquery/1727610#m1727610 https://forum.selfhtml.org/self/2018/jul/20/braucht-noch-wer-jquery/1727610#m1727610 <p>PS:</p> <p>die beschriebene Datenstruktur kann <a href="http://rolfrost.de/sampleform.html" rel="nofollow noopener noreferrer">mit dieser Demo</a> getestet werden.</p> <p>MfG</p> Datenstrukturen aus Formulareingaben Mon, 10 Sep 18 04:53:11 Z https://forum.selfhtml.org/self/2018/jul/20/braucht-noch-wer-jquery/1731510#m1731510 https://forum.selfhtml.org/self/2018/jul/20/braucht-noch-wer-jquery/1731510#m1731510 <p>Moin,</p> <blockquote> <blockquote> <p>Ach, das ist dein Verständnisproblem. Der Konstruktor von URLSearchParams() kann nicht nur einen Querystring entgegennehmen, sondern auch eine Sequenz entgegennehmen, deren Elemente jeweils eine Sequenz von zwei Strings ist, also ein "Array of Arrays of two Strings". In Code ausgedrückt beispielsweise:</p> <p><code>[['foo', 'bar'], ['qux', 'baz'], ...]</code></p> </blockquote> <p>Ich frage mich wer auf solche Datenstrukturen kommt, zumal es sich ja um assoziierte Daten handelt <code>{Schlüssel: Wert}</code>. Das führt doch fast zwangsläufig eher hierzu:</p> <pre><code class="block language-js"><span class="token punctuation">[</span> <span class="token punctuation">{</span> <span class="token literal-property property">name</span><span class="token operator">:</span> <span class="token string">'foo'</span><span class="token punctuation">,</span> <span class="token literal-property property">value</span><span class="token operator">:</span> <span class="token string">'bar'</span> <span class="token punctuation">}</span><span class="token punctuation">,</span> <span class="token punctuation">{</span> <span class="token literal-property property">name</span><span class="token operator">:</span> <span class="token string">'foo'</span><span class="token punctuation">,</span> <span class="token literal-property property">value</span><span class="token operator">:</span> <span class="token string">'foo'</span> <span class="token punctuation">}</span><span class="token punctuation">,</span> <span class="token punctuation">{</span> <span class="token literal-property property">name</span><span class="token operator">:</span> <span class="token string">'qux'</span><span class="token punctuation">,</span> <span class="token literal-property property">value</span><span class="token operator">:</span> <span class="token string">'baz'</span> <span class="token punctuation">}</span><span class="token punctuation">,</span> <span class="token punctuation">]</span> </code></pre> </blockquote> <p>Unabhängig von meinen diesbezüglichen Überlegungen, Ergebnis siehe obenstehend, erzeugt jQuery(form).serializeArray() ganz genau dieselbe Datenstruktur. Leider ist dabei die FileAPI nicht berücksichtigt, also Uploadfelder werden mit dieser jQuery Funktion nicht erfasst.</p> <p>Trotzdem ist diese Funktion interessant, nämlich dann, wenn aus den Formulardaten ein anderer Enctype zb. application/json erzeugt werden soll.</p> <blockquote> <p>Wobei man hinsichtlich Default-Enctype die sich aus mehreren Werten ergebenden Arrays zusammenfassen kann:</p> <pre><code class="block language-js"><span class="token punctuation">{</span> <span class="token literal-property property">foo</span><span class="token operator">:</span> <span class="token punctuation">[</span><span class="token string">'foo'</span><span class="token punctuation">,</span><span class="token string">'bar'</span><span class="token punctuation">]</span><span class="token punctuation">,</span> <span class="token literal-property property">qux</span><span class="token operator">:</span> <span class="token punctuation">[</span><span class="token string">'baz'</span><span class="token punctuation">]</span> <span class="token punctuation">}</span> </code></pre> <p>So daß sich obenstehende schmale Datenstruktur ergibt ohne Redundanzen.</p> </blockquote> <p>Diese Zusammenfassung ist deswegen so wichtig, weil sie die direkte Adressierung nach dem Feldnamen ermöglicht. Und ist natürlich auch unabhängig vom Enctype. D.h., man kann die Datenstruktur auch serverseitig, also nach der Übertragung so umbauen.</p> <blockquote> <p>Wie auch immer, URLSearchParams ist ja nicht das Problem und auch nicht die Lösung dafür, die Daten eines Formulars zu erfassen. Betrachtet man das <form>-Element selbst als Schnittstelle, so bietet das DOM schon eine Reihe an Möglichkeiten an die eingegebenen Daten zu kommen ohne daß man jedes Eingabefeld mit einer ID spicken muss.</p> </blockquote> <p>So isses. Und die FileAPI da mit reinzunehmen ist auch kein Problem.</p> <p>MfG</p> FromData toString und Kontextwechsel Sat, 28 Jul 18 06:21:18 Z https://forum.selfhtml.org/self/2018/jul/20/braucht-noch-wer-jquery/1727415#m1727415 https://forum.selfhtml.org/self/2018/jul/20/braucht-noch-wer-jquery/1727415#m1727415 <p>Tach!</p> <blockquote> <p>[...]</p> </blockquote> <p>Du lenkst vom Thema ab. Der strittige Punkt war deine Behauptung, FormData würde sich selbst umkodieren. Diese Behauptung hast du damit mitnichten belegt.</p> <blockquote> <p>Also ich denke schon, daß der Begriff Stringkontext hier trefflich passt.</p> </blockquote> <p>Das denke ich nicht, denn "String" ist in diem Fall viel zu allgemein. Was letztlich über die Leitung geht, ist ein String. Und selbst das ist nicht richtig, denn er kann immer noch gemäß der verschiedenen Typen des Transfer-Encodings formatiert sein. Abgesehen vom Transfer-Encoding ist es auch nicht nur "Stringkontext", sondern dieser String hat ebenfalls ein bestimmtes Format. Der Kontext ist also nicht einfach nur "String", sondern beispielsweise application/x-www-form-urlencoded and multipart/form-data. Und diese Format ist erstmal das, in das die Formulardaten zu bringen sind.</p> <p>dedlfix.</p> Typisch für OOP Overload Sat, 28 Jul 18 07:48:34 Z https://forum.selfhtml.org/self/2018/jul/20/braucht-noch-wer-jquery/1727418#m1727418 https://forum.selfhtml.org/self/2018/jul/20/braucht-noch-wer-jquery/1727418#m1727418 <p>Tach!</p> <blockquote> <blockquote> <blockquote> <p>Entscheidend ist der Kontextwechsel! Und bei <code>xhr.send(formdata)</code> heißt der Kontext String.</p> </blockquote> <p>Das kann ich nicht als richtig akzeptieren. Die MDN führt eine ganze Reihe von Dingen auf, die <a href="https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest/send" rel="nofollow noopener noreferrer">XHR.send()</a> akzeptiert.</p> <p>A body of data to be sent in the XHR request. This can be:</p> <ul> <li>A Document, in which case it is serialized before being sent.</li> <li>A BodyInit, which as per the Fetch spec can be a Blob, BufferSource, FormData, URLSearchParams, ReadableStream, or USVString object.</li> </ul> <p>String ist nur eine der Möglichkeiten.</p> </blockquote> </blockquote> <p>Das von Dir sehr schön beschriebene Verhalten bezüglich Funktionsargument ist übrigens ganz <strong>typisch für OOP/Overload.</strong></p> <p>MfG</p> FromData toString und Kontextwechsel Sat, 28 Jul 18 07:30:37 Z https://forum.selfhtml.org/self/2018/jul/20/braucht-noch-wer-jquery/1727417#m1727417 https://forum.selfhtml.org/self/2018/jul/20/braucht-noch-wer-jquery/1727417#m1727417 <p>Hallo pl,</p> <blockquote> <p>Das wäre auch ein Thema für den SELF Wiki, <a href="https://forum.selfhtml.org/self/2018/jul/20/braucht-noch-wer-jquery/1727378#m1727378" rel="noopener noreferrer">Vorschlag ist hier</a></p> </blockquote> <p><a href="https://forum.selfhtml.org/m1727381" rel="noopener noreferrer">Antwort auch</a></p> <p>Bis demnächst<br> Matthias</p> <div class="signature">-- <br> Rosen sind rot. </div> Datenstrukturen aus Formulareingaben Sat, 28 Jul 18 09:05:22 Z https://forum.selfhtml.org/self/2018/jul/20/braucht-noch-wer-jquery/1727423#m1727423 https://forum.selfhtml.org/self/2018/jul/20/braucht-noch-wer-jquery/1727423#m1727423 <blockquote> <p>Tach!</p> <blockquote> <blockquote> <p><code>[['foo', 'bar'], ['qux', 'baz'], ...]</code></p> </blockquote> <p>Ich frage mich wer auf solche Datenstrukturen kommt, zumal es sich ja um assoziierte Daten handelt <code>{Schlüssel: Wert}</code>. Das führt doch fast zwangsläufig eher hierzu:</p> <pre><code class="block language-js"><span class="token punctuation">[</span> <span class="token punctuation">{</span> <span class="token literal-property property">name</span><span class="token operator">:</span> <span class="token string">'foo'</span><span class="token punctuation">,</span> <span class="token literal-property property">value</span><span class="token operator">:</span> <span class="token string">'bar'</span> <span class="token punctuation">}</span><span class="token punctuation">,</span> <span class="token punctuation">{</span> <span class="token literal-property property">name</span><span class="token operator">:</span> <span class="token string">'foo'</span><span class="token punctuation">,</span> <span class="token literal-property property">value</span><span class="token operator">:</span> <span class="token string">'foo'</span> <span class="token punctuation">}</span><span class="token punctuation">,</span> <span class="token punctuation">{</span> <span class="token literal-property property">name</span><span class="token operator">:</span> <span class="token string">'qux'</span><span class="token punctuation">,</span> <span class="token literal-property property">value</span><span class="token operator">:</span> <span class="token string">'baz'</span> <span class="token punctuation">}</span><span class="token punctuation">,</span> <span class="token punctuation">]</span> </code></pre> </blockquote> <p>Diese Struktur ist auch nicht viel besser. Ob man nun statt numerischen Schlüsseln benannte hat, macht das Kraut am Ende nicht fett.</p> </blockquote> <p>Doch. Das Entscheidende bezüglich abstrakter Datentype nämlich ist der wahlfreie Zugriff! Während ein Array stets komplett durchlaufen werden muss, hat man mit <code>{key:value}</code> den value sofort im Griff!</p> <blockquote> <p>Das Problem in diesem Fall ist aber Möglichkeit, dass Schlüsselwerte mehrfach auftreten können und sich damit überschreiben.</p> </blockquote> <p>Mit einer dem entsprechenden Datenstruktur ist das überhaupt kein Problem. Und wie eine solche Datenstruktur aussehen könnte hab ich doch beschrieben: <code>{key:value}</code> wobei value auch ein array referenziert sofern es zu einem key mehrere Werte gibt.</p> <blockquote> <p>Ein Record mit einfachen Schlüssel-Wert-Paaren kann also nicht alle Situationen abbilden. Das eben gezeigte Beispiel hat dieses Problem beim foo. Diese Struktur ist also auf diese Weise nicht zielführend.</p> </blockquote> <p>Doch ist sie: <code>{key:[]}</code> hat sich über Jahrzehnte bewährt!</p> <blockquote> <p>Der Enctype hat an dieser Stelle nichts in der Diskussion verloren, es geht erstmal nur um eine sinnvolle Datenstruktur.</p> </blockquote> <p>Genau. Nun, multipart/form-data könnte so aussehen;</p> <pre><code class="block language-js"><span class="token punctuation">[</span> <span class="token punctuation">{</span> <span class="token literal-property property">name</span><span class="token operator">:</span><span class="token punctuation">.</span><span class="token punctuation">.</span><span class="token punctuation">,</span> <span class="token literal-property property">value</span><span class="token operator">:</span> <span class="token punctuation">.</span><span class="token punctuation">.</span><span class="token punctuation">,</span> <span class="token literal-property property">type</span><span class="token operator">:</span> <span class="token string">'application/pdf'</span><span class="token punctuation">,</span> <span class="token literal-property property">length</span><span class="token operator">:</span> <span class="token number">12324</span><span class="token punctuation">,</span> <span class="token literal-property property">charset</span><span class="token operator">:</span> <span class="token string">'utf-8'</span> <span class="token punctuation">}</span><span class="token punctuation">,</span> <span class="token punctuation">{</span><span class="token punctuation">}</span><span class="token punctuation">,</span><span class="token punctuation">{</span><span class="token punctuation">}</span><span class="token punctuation">,</span><span class="token punctuation">,</span> <span class="token punctuation">]</span> </code></pre> <p>Das sind freilich ein paar Informationen mehr als im Default Enctype. Dem gerecht wird ja auch der Parser in PHP indem er sämtliche Daten in $_POST und $_FILES also in 2 verschiedenen Arrays vorhält. Beim Default Enctype hingegen gibt es in $_FILES bekanntlich keine Daten.</p> <p>MfG</p> FromData toString und Kontextwechsel Sat, 28 Jul 18 07:59:43 Z https://forum.selfhtml.org/self/2018/jul/20/braucht-noch-wer-jquery/1727419#m1727419 https://forum.selfhtml.org/self/2018/jul/20/braucht-noch-wer-jquery/1727419#m1727419 <p>Tach!</p> <blockquote> <blockquote> <p>[...]</p> </blockquote> <p>Du lenkst vom Thema ab. Der strittige Punkt war deine Behauptung, FormData würde sich selbst umkodieren. Diese Behauptung hast du damit mitnichten belegt.</p> <blockquote> <p>Also ich denke schon, daß der Begriff Stringkontext hier trefflich passt.</p> </blockquote> <p>Das denke ich nicht, denn "String" ist in diem Fall viel zu allgemein.</p> </blockquote> <p>Umgekehrt: String ist ein Sonderfall für ein Scalar. Skalarer Kontext wäre also richtiger.</p> <blockquote> <p>Was letztlich über die Leitung geht, ist ein String. Und selbst das ist nicht richtig, denn er kann immer noch gemäß der verschiedenen Typen des Transfer-Encodings formatiert sein.</p> </blockquote> <p>Über die Leitung geht eine Bytesequenz die gar keine Kodierung kennt. Letzerere wird nämlich in einem Header <code>Content-Type: text/html; charset=utf-8</code> (Beispiel) übertragen.</p> <blockquote> <p>Der Kontext ist also nicht einfach nur "String", sondern beispielsweise application/x-www-form-urlencoded and multipart/form-data. Und diese Format ist erstmal das, in das die Formulardaten zu bringen sind.</p> </blockquote> <p>Um auch das mal wieder richtig zu stellen: application/x-www-form-urlencoded and multipart/form-data sind nicht der Kontext sondern das sind Enctypes bzw. Content-Types.</p> <p>Beispiel: <code>Content-Type: multipart/form-data; boundary=---__xy__----</code></p> <p>Der Skalare Kontext ergibt sich über die gesamte Übertragungsstrecke, weil diese transparent ist. Transparenz heiß z.B.:</p> <p>Sende ich einen String, bekomme ich einen String. Sende ich ein Objekt, bekomme ich ein Objekt.</p> <p>Transparenz heißt: Dazwischen ist nichts.</p> <p>MfG</p> Typisch für OOP Overload Mon, 10 Sep 18 07:44:07 Z https://forum.selfhtml.org/self/2018/jul/20/braucht-noch-wer-jquery/1731520#m1731520 https://forum.selfhtml.org/self/2018/jul/20/braucht-noch-wer-jquery/1731520#m1731520 <p>Tach!</p> <blockquote> <blockquote> <blockquote> <p>String ist nur eine der Möglichkeiten.</p> </blockquote> </blockquote> <p>Das von Dir sehr schön beschriebene Verhalten bezüglich Funktionsargument ist übrigens ganz <strong>typisch für OOP/Overload.</strong></p> </blockquote> <p>Overload ist eine praktische Angelegenheit. Weil es so gut passt, hier ein weiterer typischer Anwendungsfall (Stringkontext). Betrachte untenstehende Datenstruktur in Perl</p> <pre><code class="block language-perl"><span class="token variable">$var</span> <span class="token operator">=</span> <span class="token punctuation">{</span> <span class="token string">'content_length'</span> <span class="token operator">=></span> <span class="token string">'17479'</span><span class="token punctuation">,</span> <span class="token string">'content_type'</span> <span class="token operator">=></span> <span class="token string">'image/jpeg'</span><span class="token punctuation">,</span> <span class="token string">'filename'</span> <span class="token operator">=></span> <span class="token string">'eichelberg.jpg'</span><span class="token punctuation">,</span> <span class="token string">'iohandle'</span> <span class="token operator">=></span> bless<span class="token punctuation">(</span> <span class="token operator">\</span><span class="token variable">*Symbol::GEN3</span><span class="token punctuation">,</span> <span class="token string">'IO::String'</span> <span class="token punctuation">)</span><span class="token punctuation">,</span> <span class="token string">'mtime'</span> <span class="token operator">=></span> <span class="token string">'1386763302'</span><span class="token punctuation">,</span> <span class="token string">'mtime_gm'</span> <span class="token operator">=></span> <span class="token string">'Wed Dec 11 12:01:42 2013'</span><span class="token punctuation">,</span> <span class="token string">'mtime_local'</span> <span class="token operator">=></span> <span class="token string">'Wed Dec 11 13:01:42 2013'</span><span class="token punctuation">,</span> <span class="token string">'name'</span> <span class="token operator">=></span> <span class="token string">'upspot'</span> <span class="token punctuation">}</span><span class="token punctuation">;</span> </code></pre> <p>So könnte man mit $var->{iohandle} auf ebendieses zugreifen um den Inhalt der Datei auszulesen. Man könnte aber auch $var zu einer Instanz einer Klasse machen und den Operator <code>""</code> überladen. Somit kriegt man den Inhalt ganz einfach mit "$var" as string so daß eine getMethode <code>$var->getContent()</code> entfallen kann.</p> <p>MfG</p> FromData toString und Kontextwechsel Sat, 28 Jul 18 08:14:55 Z https://forum.selfhtml.org/self/2018/jul/20/braucht-noch-wer-jquery/1727421#m1727421 https://forum.selfhtml.org/self/2018/jul/20/braucht-noch-wer-jquery/1727421#m1727421 <p>Tach!</p> <blockquote> <blockquote> <p>Was letztlich über die Leitung geht, ist ein String. Und selbst das ist nicht richtig, denn er kann immer noch gemäß der verschiedenen Typen des Transfer-Encodings formatiert sein.</p> </blockquote> <p>Über die Leitung geht eine Bytesequenz die gar keine Kodierung kennt. Letzerere wird nämlich in einem Header <code>Content-Type: text/html; charset=utf-8</code> (Beispiel) übertragen.</p> </blockquote> <p>Das ist alles eine Betrachtungsfrage, in welcher Schicht wir uns befinden. Aber eigentlich waren diese unteren Schichten bisher kein Thema, eher nur ein Ablenkungsmanöver deinerseits. Und es ist auch zur Klärung der offenen Fragen nicht weiter hilfreich.</p> <blockquote> <p>Der Skalare Kontext ergibt sich über die gesamte Übertragungsstrecke, weil diese transparent ist. Transparenz heiß z.B.:</p> <p>Sende ich einen String, bekomme ich einen String. Sende ich ein Objekt, bekomme ich ein Objekt.</p> <p>Transparenz heißt: Dazwischen ist nichts.</p> </blockquote> <p>Achja, und diese Transparenz kommt einfach so aus dem Nichts beziehungsweise "ist nichts"? Mitnichten. Das was du da als Transparenz bezeichnest und wegzudiskutieren meinst, ist konkreter Code. Um Teile dieses konkreten Codes ging es, nicht um eine von außen betrachtete Wegabstrahierung.</p> <p>Siehe die von dir gesetzte Überschrift in diesem Teilthread: "FormData toString und Kontextwechsel". FormData hat kein eigenes toString(), es erbt über die Prototype-Chain das toString() von Object. Da ist also nach wie vor nichts, was irgendwie in die von dir angeschnittene Diskussionsrichtung passt.</p> <p>dedlfix.</p> FromData toString und Kontextwechsel Sat, 28 Jul 18 08:35:52 Z https://forum.selfhtml.org/self/2018/jul/20/braucht-noch-wer-jquery/1727422#m1727422 https://forum.selfhtml.org/self/2018/jul/20/braucht-noch-wer-jquery/1727422#m1727422 <p><a href="/users/27" class="mention registered-user" rel="noopener noreferrer">@dedlfix</a></p> <blockquote> <blockquote> <p>Transparenz heißt: Dazwischen ist nichts.</p> </blockquote> <p>Achja, und diese Transparenz kommt einfach so aus dem Nichts beziehungsweise "ist nichts"?</p> </blockquote> <p>Natürlich nicht! Dafür muss man was tun, von alleine kommt da gar nichts!</p> <blockquote> <p>Mitnichten. Das was du da als Transparenz bezeichnest und wegzudiskutieren meinst, ist konkreter Code. Um Teile dieses konkreten Codes ging es, nicht um eine von außen betrachtete Wegabstrahierung.</p> </blockquote> <p>Diese konkreten Dinge sind Enctype, Serializer, Content-Type, Bytesequenzen und das Protokoll selbst (HTTP) / ohne Anspruch auf Vollständigkeit, aber ich habe das alles hier mehr als nur einmal aufgeführt und zwar im richtigen Zusammenhang.</p> <p>Und: Das kürzeste Stück Code nützt niemandem der die Grundlagen nicht versteht.</p> <blockquote> <p>Siehe die von dir gesetzte Überschrift in diesem Teilthread: "FormData toString und Kontextwechsel". FormData hat kein eigenes toString(), es erbt über die Prototype-Chain das toString() von Object. Da ist also nach wie vor nichts, was irgendwie in die von dir angeschnittene Diskussionsrichtung passt.</p> </blockquote> <p>Na, das passt doch ausgezeichnet!</p> <p>MfG</p> <div class="signature">-- <br> niemand braucht mehr als 640kb ram in seinem pc ... Danke Bill! Heutige Programmierer brauchen 8GB und kriegen trotzdem nichts gebacken! </div> Datenstrukturen aus Formulareingaben Sat, 28 Jul 18 09:20:17 Z https://forum.selfhtml.org/self/2018/jul/20/braucht-noch-wer-jquery/1727424#m1727424 https://forum.selfhtml.org/self/2018/jul/20/braucht-noch-wer-jquery/1727424#m1727424 <p>Tach!</p> <blockquote> <blockquote> <p>Diese Struktur ist auch nicht viel besser. Ob man nun statt numerischen Schlüsseln benannte hat, macht das Kraut am Ende nicht fett.</p> </blockquote> <p>Doch. Das Entscheidende bezüglich abstrakter Datentype nämlich ist der wahlfreie Zugriff! Während ein Array stets komplett durchlaufen werden muss, hat man mit <code>{key:value}</code> den value sofort im Griff!</p> </blockquote> <p>Das sehe ich in dem Fall nicht als das entscheidende Kriterium an. Der Kontext ist immer noch FormData und URLSearchParams. Beide haben entsprechende Methoden, um über den Namen auf die Werte zugreifen zu können. Man muss sich also nicht die anderen Nachteile einhandeln, nur um die angebliche einfache Zugreifbarkeit zu gewährleisten, wenn diese auf anderem Wege mit vergleichbarem Komfort verfügbar ist.</p> <blockquote> <blockquote> <p>Das Problem in diesem Fall ist aber Möglichkeit, dass Schlüsselwerte mehrfach auftreten können und sich damit überschreiben.</p> </blockquote> <p>Mit einer dem entsprechenden Datenstruktur ist das überhaupt kein Problem.</p> </blockquote> <p>Natürlich ist das kein generelles Problem. Es geht hier aber nicht darum eine angeblich universelle Datenstruktur zu erstellen, sondern eine für einen bestimmten Einsatzzweck. Und da sollte man die Eigenschaften diesbezüglich betrachten, anstatt eine universelle Struktur schaffen zu wollen, die sich anderweitig als nachteilig erweisen kann.</p> <p>Deine Vorschläge lösen alle nicht die Vorgabe, die ursprüngliche Reihenfolge beizubehalten. Wenn du die in deinem Fall nicht brauchst, gibt es immer noch die Methoden get und getAll, um über den Key zuzugreifen.</p> <blockquote> <blockquote> <p>Der Enctype hat an dieser Stelle nichts in der Diskussion verloren, es geht erstmal nur um eine sinnvolle Datenstruktur.</p> </blockquote> <p>Nun, multipart/form-data könnte so aussehen;</p> </blockquote> <p>Ach, ich dachte, du wolltest eine universelle und keine für einen konkreten Einsatzzweck? Jetzt kommst du mit einer noch spezifischeren Struktur um die Ecke.</p> <p>dedlfix.</p> Datenstrukturen aus Formulareingaben Sat, 28 Jul 18 09:34:04 Z https://forum.selfhtml.org/self/2018/jul/20/braucht-noch-wer-jquery/1727426#m1727426 https://forum.selfhtml.org/self/2018/jul/20/braucht-noch-wer-jquery/1727426#m1727426 <p>Tach!</p> <blockquote> <blockquote> <blockquote> <p>Diese Struktur ist auch nicht viel besser. Ob man nun statt numerischen Schlüsseln benannte hat, macht das Kraut am Ende nicht fett.</p> </blockquote> <p>Doch. Das Entscheidende bezüglich abstrakter Datentype nämlich ist der wahlfreie Zugriff! Während ein Array stets komplett durchlaufen werden muss, hat man mit <code>{key:value}</code> den value sofort im Griff!</p> </blockquote> <p>Das sehe ich in dem Fall nicht als das entscheidende Kriterium an.</p> </blockquote> <p>Ist es aber. Weil: Übertragen wird ja nicht der Index eines Array sonder übertragen wird der Schlüssel und zwar namentlich! Selbst <code>URLSearchParams</code> Methoden werden dieser Tatsache gerecht!</p> <blockquote> <p>Natürlich ist das kein generelles Problem. Es geht hier aber nicht darum eine angeblich universelle Datenstruktur zu erstellen, sondern eine für einen bestimmten Einsatzzweck.</p> </blockquote> <p>Es geht um einen Ersatz von jQuery.serialize. Und da ist FormData völlig fehl am Platze weil es weder</p> <pre><code>1. eine Datenstruktur für den Default Enctype lliefert 2. noch den Enctype selbst serialisiert </code></pre> <blockquote> <p>..anstatt eine universelle Struktur schaffen zu wollen, die sich anderweitig als nachteilig erweisen kann.</p> </blockquote> <p>In Hinblick möglicher Erweiterungen auf Enctypes wie <code>application/json</code> oder <code>application/xml</code> ist ein Zwischenschritt über eine universelle Datenstruktur auf jeden Fall sinnvoll.</p> <blockquote> <p>Deine Vorschläge lösen alle nicht die Vorgabe, die ursprüngliche Reihenfolge beizubehalten. Wenn du die in deinem Fall nicht brauchst, gibt es immer noch die Methoden get und getAll, um über den Key zuzugreifen.</p> </blockquote> <p>Das kann man auch mit Methoden die das DOM bietet.</p> <blockquote> <blockquote> <p>Nun, multipart/form-data könnte so aussehen;</p> </blockquote> <p>Ach, ich dachte, du wolltest eine universelle und keine für einen konkreten Einsatzzweck? Jetzt kommst du mit einer noch spezifischeren Struktur um die Ecke.</p> </blockquote> <p>Die von mir gezeigte Datenstruktur passt ebenso auch auf den Enctype application/x-www-form-urlencoded !</p> <p>also dieda:</p> <blockquote> <pre><code class="block language-js"><span class="token punctuation">[</span> <span class="token punctuation">{</span> <span class="token literal-property property">name</span><span class="token operator">:</span><span class="token punctuation">.</span><span class="token punctuation">.</span><span class="token punctuation">,</span> <span class="token literal-property property">value</span><span class="token operator">:</span> <span class="token punctuation">.</span><span class="token punctuation">.</span><span class="token punctuation">,</span> <span class="token punctuation">}</span><span class="token punctuation">,</span> <span class="token punctuation">{</span><span class="token punctuation">}</span><span class="token punctuation">,</span><span class="token punctuation">{</span><span class="token punctuation">}</span><span class="token punctuation">,</span><span class="token punctuation">,</span> <span class="token punctuation">]</span> </code></pre> </blockquote> <p>MfG</p> Datenstrukturen aus Formulareingaben Sat, 28 Jul 18 09:51:26 Z https://forum.selfhtml.org/self/2018/jul/20/braucht-noch-wer-jquery/1727429#m1727429 https://forum.selfhtml.org/self/2018/jul/20/braucht-noch-wer-jquery/1727429#m1727429 <p>Tach!</p> <blockquote> <blockquote> <blockquote> <blockquote> <p>Diese Struktur ist auch nicht viel besser. Ob man nun statt numerischen Schlüsseln benannte hat, macht das Kraut am Ende nicht fett.</p> </blockquote> <p>Doch. Das Entscheidende bezüglich abstrakter Datentype nämlich ist der wahlfreie Zugriff! Während ein Array stets komplett durchlaufen werden muss, hat man mit <code>{key:value}</code> den value sofort im Griff!</p> </blockquote> <p>Das sehe ich in dem Fall nicht als das entscheidende Kriterium an.</p> </blockquote> <p>Ist es aber. Weil: Übertragen wird ja nicht der Index eines Array sonder übertragen wird der Schlüssel und zwar namentlich!</p> </blockquote> <p>Es ging nicht darum, dass der Schlüssel weg wäre, was er in der ursprünglichen Struktur ja nicht ist, sondern um einen von dir geforderten wahlfreien Zugriff. Für diesen wahlfreien Zugriff ist es nicht erforderlich, dass die Struktur ihn selbst begünstigt. Über Methoden zugreifen, reicht auch.</p> <blockquote> <blockquote> <p>Natürlich ist das kein generelles Problem. Es geht hier aber nicht darum eine angeblich universelle Datenstruktur zu erstellen, sondern eine für einen bestimmten Einsatzzweck.</p> </blockquote> <p>Es geht um einen Ersatz von jQuery.serialize. Und da ist FormData völlig fehl am Platze weil es weder</p> <pre><code>1. eine Datenstruktur für den Default Enctype lliefert 2. noch den Enctype selbst serialisiert </code></pre> </blockquote> <p>Du springst im Thema beliebig hin und her. Erst gefällt dir die Struktur nicht, nun springst du wieder zurück zum Anfang, und bringst Argumente, die schon längst geklärt sind.</p> <blockquote> <blockquote> <p>..anstatt eine universelle Struktur schaffen zu wollen, die sich anderweitig als nachteilig erweisen kann.</p> </blockquote> <p>In Hinblick möglicher Erweiterungen auf Enctypes wie <code>application/json</code> oder <code>application/xml</code> ist ein Zwischenschritt über eine universelle Datenstruktur auf jeden Fall sinnvoll.</p> </blockquote> <p>Bei einer Struktur, die die Aufgabenstellung nicht erfüllt (Reihenfolge beibehalten), braucht man nicht weiter über den Sinn nachzudenken. (Es sei denn, sie kann andere Aufgabenstellungen untserstützen, nur nützt das ja nichts für die vorliegende.)</p> <blockquote> <blockquote> <p>Deine Vorschläge lösen alle nicht die Vorgabe, die ursprüngliche Reihenfolge beizubehalten. Wenn du die in deinem Fall nicht brauchst, gibt es immer noch die Methoden get und getAll, um über den Key zuzugreifen.</p> </blockquote> <p>Das kann man auch mit Methoden die das DOM bietet.</p> </blockquote> <p>Dann brauchst du gleich gar keine Datenstruktur, wenn alles übers DOM geht.</p> <p>dedlfix.</p> Datenstrukturen aus Formulareingaben Sat, 28 Jul 18 10:10:04 Z https://forum.selfhtml.org/self/2018/jul/20/braucht-noch-wer-jquery/1727431#m1727431 https://forum.selfhtml.org/self/2018/jul/20/braucht-noch-wer-jquery/1727431#m1727431 <p>hi <a href="/users/27" class="mention registered-user" rel="noopener noreferrer">@dedlfix</a></p> <blockquote> <blockquote> <p>Das kann man auch mit Methoden die das DOM bietet.</p> </blockquote> <p>Dann brauchst du gleich gar keine Datenstruktur, wenn alles übers DOM geht.</p> </blockquote> <p>Eine Datenstruktur wird immer gebraucht! Denn es ist ein schlechter Stil, aus den Daten direkt den String zu erzeugen. Nicht umsonst gibt es ja diese wunderschönen Schichtenmodelle die man eben nicht nur als Gemälde an der Wand bestaunt sondern praktisch anwendet!</p> <p>Dein Ansatz mit <code>Array.from(form)</code> liefert ein Array. Deswegen finde ich diesen Ansatz genau richtig. Und darauf bauend kann man recht einfach eine Struktur wie <code>[{},{},{},,,]</code> erzeugen indem man über die Formularelemente iteriert und so die Daten wie <code>{name:..,value:..}</code> und im Falle <code>type=file</code> weitere Informationen bekommt.</p> <p>Und wenn nicht gerade ein <code>type=file</code> im Spiel ist, kann man genau diese Datenstruktur ohne Umschweife als JSON auf die Reise schicken. Oder als Query_String, oder XML draus machen. Oder einen proprietären Enctype der auch die Dateien rüberbringt.</p> <p>Du ich will Dir nicht zu nahe treten, aber über diesen Thread hier solltest Du mal ernsthaft nachdenken. So wie es aussieht fehlen Dir eine gehörige Portion Grundwissen und vor Allem Erfahrungen.</p> <p>MfG</p> Datenstrukturen aus Formulareingaben Sat, 28 Jul 18 10:35:39 Z https://forum.selfhtml.org/self/2018/jul/20/braucht-noch-wer-jquery/1727439#m1727439 https://forum.selfhtml.org/self/2018/jul/20/braucht-noch-wer-jquery/1727439#m1727439 <p>Hallo dedlfix,</p> <blockquote> <p>Du springst im Thema beliebig hin und her. Erst gefällt dir die Struktur nicht, nun springst du wieder zurück zum Anfang, und bringst Argumente, die schon längst geklärt sind.</p> </blockquote> <p>Ja, man bräuchte eine sich automatisch aktualisierende Mindmap (und nein, ein Bullshit-Bingo-Zettel ist keine Mindmap )</p> <p>Bis demnächst<br> Matthias</p> <div class="signature">-- <br> Rosen sind rot. </div> Datenstrukturen aus Formulareingaben Sat, 28 Jul 18 10:23:18 Z https://forum.selfhtml.org/self/2018/jul/20/braucht-noch-wer-jquery/1727434#m1727434 https://forum.selfhtml.org/self/2018/jul/20/braucht-noch-wer-jquery/1727434#m1727434 <p>hallo</p> <blockquote> <p>Dein Ansatz mit <code>Array.from(form)</code> liefert ein Array. Deswegen finde ich diesen Ansatz genau richtig. Und darauf bauend kann man recht einfach eine Struktur wie <code>[{},{},{},,,]</code> erzeugen indem man über die Formularelemente iteriert und so die Daten wie <code>{name:..,value:..}</code> und im Falle <code>type=file</code> weitere Informationen bekommt.</p> </blockquote> <p>Nur mal so, wenn du denkst, eine JSON-ähnliche Struktur zu erzeugen, dann mündet das in Datenverlust, denn generell gehen alle JSON-Konvertierer davon aus, dass object-keys unique sind.</p> <p>sowohl multipart/formdata wie www-urlencoded sind aber weder Arrays noch Hashes noch JSON data, sondern einfach flache Listen mit Label und assoziiertem Inhalt.</p> <div class="signature">-- <br> Neu im Forum! Signaturen kann man ausblenden! </div> Datenstrukturen aus Formulareingaben Sat, 28 Jul 18 10:25:18 Z https://forum.selfhtml.org/self/2018/jul/20/braucht-noch-wer-jquery/1727435#m1727435 https://forum.selfhtml.org/self/2018/jul/20/braucht-noch-wer-jquery/1727435#m1727435 <blockquote> <p>Du ich will Dir nicht zu nahe treten, aber über diesen Thread hier solltest Du mal ernsthaft nachdenken. So wie es aussieht fehlen Dir eine gehörige Portion Grundwissen und vor Allem Erfahrungen.</p> </blockquote> <p>Der einzige Grund, warum ich mir um dedlfix Gedanken mache, ist, warum er sich mit Deinem wirren Müll überhaupt so beharrlich und besonnen beschäftigt. Masochismus wäre eine Erklärung.</p> Datenstrukturen aus Formulareingaben Sat, 28 Jul 18 10:41:11 Z https://forum.selfhtml.org/self/2018/jul/20/braucht-noch-wer-jquery/1727440#m1727440 https://forum.selfhtml.org/self/2018/jul/20/braucht-noch-wer-jquery/1727440#m1727440 <p>Tach!</p> <blockquote> <blockquote> <blockquote> <p>Das kann man auch mit Methoden die das DOM bietet.</p> </blockquote> <p>Dann brauchst du gleich gar keine Datenstruktur, wenn alles übers DOM geht.</p> </blockquote> <p>Eine Datenstruktur wird immer gebraucht! Denn es ist ein schlechter Stil, aus den Daten direkt den String zu erzeugen. Nicht umsonst gibt es ja diese wunderschönen Schichtenmodelle die man eben nicht nur als Gemälde an der Wand bestaunt sondern praktisch anwendet!</p> </blockquote> <p>Was willst du überhaupt? Erst hast du einen Ersatz für jQuery.serialize() gesucht. Ein Einzeiler, der genau das macht, was du nun anprangerst: "schlechter Stil, aus den Daten direkt den String zu erzeugen". Ich schlage zwei Ersatzlösungen vor, die genau das eingangs Gewünschte realisieren. Die eine geht die Hälfte zu Fuß, die andere nutzt ein weiteres Element aus VanillaJS stattdessen. Dazu benötigt sie Zwischenschritte mit temporären Daten, mit denen du aber ebensowenig wie mit den internen Zwischenschritten von jQuery.serialize() in Berührung kommst. Du suchst daraufhin jede Menge Argumente bis hin zu unbelegten Vorwürfen, dass die Lösung nicht funktioniere. So gut wie nichts passt dir an ihr. Was also willst du überhaupt?</p> <blockquote> <p>Dein Ansatz mit <code>Array.from(form)</code> liefert ein Array. Deswegen finde ich diesen Ansatz genau richtig. Und darauf bauend kann man recht einfach eine Struktur wie <code>[{},{},{},,,]</code> erzeugen indem man über die Formularelemente iteriert und so die Daten wie <code>{name:..,value:..}</code> und im Falle <code>type=file</code> weitere Informationen bekommt.</p> </blockquote> <p>Das war nicht die Aufgabenstellung. Zudem ist diese Zwischenstruktur bereits vorhanden. FormData existiert. Und sehr einfach anwendbare Vorgehensweisen, diese Daten über URL oder Body zu versenden. Ich sehe keine Notwendigkeit, eine weitere Struktur entwickeln zu müssen. FormData mit seinen Methoden ist soweit universell, dass daraus auch eine Menge andere Strukturen recht einfach erstellt werden können - falls dazu überhaupt Bedarf abseits der bereits in VanillaJS eingebauten Funktionalität besteht.</p> <blockquote> <p>Du ich will Dir nicht zu nahe treten, aber über diesen Thread hier solltest Du mal ernsthaft nachdenken. So wie es aussieht fehlen Dir eine gehörige Portion Grundwissen und vor Allem Erfahrungen.</p> </blockquote> <p>Ich bedanke mich recht herzlich für diese Einschätzung. Aber ich denke, damit liegst du genauso daneben, wie mit einigen anderen Punkten, die du im Verlaufe des Threads beigetragen hast. Ansonsten bringt mich eine solche Einschätzung nicht weiter. Ich fände es sinnvoller konkrete Rückfragen zu beantwortet zu bekommen, am besten in nachvollziehbarer Weise.</p> <p>dedlfix.</p> Datenstrukturen aus Formulareingaben Sun, 29 Jul 18 13:31:58 Z https://forum.selfhtml.org/self/2018/jul/20/braucht-noch-wer-jquery/1727521#m1727521 https://forum.selfhtml.org/self/2018/jul/20/braucht-noch-wer-jquery/1727521#m1727521 <p>Moin pl,</p> <blockquote> <p>Du ich will Dir nicht zu nahe treten, aber über diesen Thread hier solltest Du mal ernsthaft nachdenken. So wie es aussieht fehlen Dir eine gehörige Portion Grundwissen und vor Allem Erfahrungen.</p> </blockquote> <p><a href="https://www.der-postillon.com/2015/03/wissenschaftlich-erwiesen-alles.html" rel="nofollow noopener noreferrer">du hast vollkommen Recht.</a></p> <p>Hier ist dein Fisch.</p> <p>Viele Grüße<br> Robert</p> Datenstrukturen aus Formulareingaben Sat, 28 Jul 18 12:40:43 Z https://forum.selfhtml.org/self/2018/jul/20/braucht-noch-wer-jquery/1727453#m1727453 https://forum.selfhtml.org/self/2018/jul/20/braucht-noch-wer-jquery/1727453#m1727453 <p>hallo</p> <blockquote> <blockquote> <p>Dein Ansatz mit <code>Array.from(form)</code> liefert ein Array. Deswegen finde ich diesen Ansatz genau richtig. Und darauf bauend kann man recht einfach eine Struktur wie <code>[{},{},{},,,]</code> erzeugen indem man über die Formularelemente iteriert und so die Daten wie <code>{name:..,value:..}</code> und im Falle <code>type=file</code> weitere Informationen bekommt.</p> </blockquote> <p>Nur mal so, wenn du denkst, eine JSON-ähnliche Struktur zu erzeugen, dann mündet das in Datenverlust, denn generell gehen alle JSON-Konvertierer davon aus, dass object-keys unique sind.</p> </blockquote> <p>Unsinn. Der Weg über das Array funktioniert ausgezeichnet, da gibt es überhaupt keinen Datenverlust!</p> <blockquote> <p>sowohl multipart/formdata wie www-urlencoded sind aber weder Arrays noch Hashes noch JSON data, sondern einfach flache Listen mit Label und assoziiertem Inhalt.</p> </blockquote> <p>Was Du nicht sagst, Guten Morgen! Darüber reden wir doch die ganze Zeit, meine Güte </p> <p>Meine Datenstruktur sieht bspw. so aus:</p> <pre><code class="block language-perl"><span class="token variable">$VAR1</span> <span class="token operator">=</span> <span class="token punctuation">[</span> <span class="token string">'0'</span> <span class="token operator">=></span> <span class="token punctuation">{</span> <span class="token string">'name'</span> <span class="token operator">=></span> <span class="token string">'foo'</span><span class="token punctuation">,</span> <span class="token string">'value'</span> <span class="token operator">=></span> <span class="token string">'bar'</span> <span class="token punctuation">}</span><span class="token punctuation">,</span> <span class="token string">'1'</span> <span class="token operator">=></span> <span class="token punctuation">{</span> <span class="token string">'name'</span> <span class="token operator">=></span> <span class="token string">'foo'</span><span class="token punctuation">,</span> <span class="token string">'value'</span> <span class="token operator">=></span> <span class="token string">'boo'</span> <span class="token punctuation">}</span><span class="token punctuation">,</span> <span class="token string">'2'</span> <span class="token operator">=></span> <span class="token punctuation">{</span> <span class="token string">'name'</span> <span class="token operator">=></span> <span class="token string">'red.gif'</span><span class="token punctuation">,</span> <span class="token string">'size'</span> <span class="token operator">=></span> <span class="token string">'522'</span><span class="token punctuation">,</span> <span class="token string">'type'</span> <span class="token operator">=></span> <span class="token string">'image/gif'</span><span class="token punctuation">,</span> <span class="token string">'value'</span> <span class="token operator">=></span> 'GIF89a <span class="token punctuation">}</span> <span class="token punctuation">]</span> </code></pre> <p>Wie die serialisiert wird (was den Enctype betrifft) ist völlig egal! Stichwort Transparenz: JS-Array rein, Perl-Array raus.</p> <p>Daß JSON oder XML nicht binary safe sind müssen wir hier nicht diskutieren oder?</p> <p>MfG</p> Datenstrukturen aus Formulareingaben Sat, 28 Jul 18 10:52:56 Z https://forum.selfhtml.org/self/2018/jul/20/braucht-noch-wer-jquery/1727443#m1727443 https://forum.selfhtml.org/self/2018/jul/20/braucht-noch-wer-jquery/1727443#m1727443 <p>Hallo,</p> <blockquote> <p>Der einzige Grund, warum ich mir um dedlfix Gedanken mache, ist, warum er sich mit Deinem wirren Müll überhaupt so beharrlich und besonnen beschäftigt. Masochismus wäre eine Erklärung.</p> </blockquote> <p>ich kann dedlfix's Geduld auch nur noch bewundern.</p> <p>Gruß<br> Jürgen</p> Datenstrukturen aus Formulareingaben Sat, 28 Jul 18 13:13:15 Z https://forum.selfhtml.org/self/2018/jul/20/braucht-noch-wer-jquery/1727455#m1727455 https://forum.selfhtml.org/self/2018/jul/20/braucht-noch-wer-jquery/1727455#m1727455 <blockquote> <blockquote> <p>Du ich will Dir nicht zu nahe treten, aber über diesen Thread hier solltest Du mal ernsthaft nachdenken. So wie es aussieht fehlen Dir eine gehörige Portion Grundwissen und vor Allem Erfahrungen.</p> </blockquote> <p>Der einzige Grund, warum ich mir um dedlfix Gedanken mache, ist, warum er sich mit Deinem wirren Müll überhaupt so beharrlich und besonnen beschäftigt.</p> </blockquote> <p>Den seine Beitrage haben wenigstens noch einen Bezug zum Fachthema. Im Gegensatz zu dem was da Andere so von sich geben da ist der Begriff Unsachlichkeit schon Schmeichlei. Arroganz ist der richtige Begriff!</p> <blockquote> <p>Masochismus wäre eine Erklärung.</p> </blockquote> <p>Genau das meine ich mit Unsachlichkeit!</p> <p>MfG</p> Datenstrukturen aus Formulareingaben Sat, 28 Jul 18 13:09:00 Z https://forum.selfhtml.org/self/2018/jul/20/braucht-noch-wer-jquery/1727454#m1727454 https://forum.selfhtml.org/self/2018/jul/20/braucht-noch-wer-jquery/1727454#m1727454 <p><a href="/users/27" class="mention registered-user" rel="noopener noreferrer">@dedlfix</a></p> <p>Hast Du überhaupt mitbekommen daß ich Deinen Ansatz <code>Array.from(form)</code> gelobt habe!?</p> <p>Wobei ich perönlich ein</p> <pre><code class="block language-js"><span class="token keyword">for</span><span class="token punctuation">(</span> <span class="token keyword">var</span> i <span class="token operator">=</span> <span class="token number">0</span><span class="token punctuation">;</span> i <span class="token operator"><</span> document<span class="token punctuation">.</span>forms<span class="token punctuation">[</span>fi<span class="token punctuation">]</span><span class="token punctuation">.</span>elements<span class="token punctuation">.</span>length<span class="token punctuation">;</span> i<span class="token operator">++</span> <span class="token punctuation">)</span><span class="token punctuation">{</span><span class="token punctuation">}</span> </code></pre> <p>bevorzuge. Das kann man beliebig erweitern:</p> <pre><code class="block language-js"> <span class="token keyword">var</span> params <span class="token operator">=</span> <span class="token punctuation">[</span><span class="token punctuation">]</span><span class="token punctuation">;</span> <span class="token keyword">for</span><span class="token punctuation">(</span> <span class="token keyword">var</span> i <span class="token operator">=</span> <span class="token number">0</span><span class="token punctuation">;</span> i <span class="token operator"><</span> document<span class="token punctuation">.</span>forms<span class="token punctuation">[</span>fi<span class="token punctuation">]</span><span class="token punctuation">.</span>elements<span class="token punctuation">.</span>length<span class="token punctuation">;</span> i<span class="token operator">++</span> <span class="token punctuation">)</span><span class="token punctuation">{</span> <span class="token keyword">var</span> formel <span class="token operator">=</span> document<span class="token punctuation">.</span>forms<span class="token punctuation">[</span>fi<span class="token punctuation">]</span><span class="token punctuation">.</span>elements<span class="token punctuation">[</span>i<span class="token punctuation">]</span> <span class="token punctuation">;</span> <span class="token keyword">if</span><span class="token punctuation">(</span> <span class="token operator">!</span> formel<span class="token punctuation">.</span>name <span class="token punctuation">)</span> <span class="token keyword">continue</span><span class="token punctuation">;</span> <span class="token keyword">if</span><span class="token punctuation">(</span>formel<span class="token punctuation">.</span>type <span class="token operator">==</span> <span class="token string">'text'</span><span class="token punctuation">)</span><span class="token punctuation">{</span> params<span class="token punctuation">.</span><span class="token function">push</span><span class="token punctuation">(</span><span class="token punctuation">{</span><span class="token literal-property property">name</span><span class="token operator">:</span> formel<span class="token punctuation">.</span>name<span class="token punctuation">,</span> <span class="token literal-property property">value</span><span class="token operator">:</span> formel<span class="token punctuation">.</span>value<span class="token punctuation">}</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token punctuation">}</span> <span class="token keyword">else</span> <span class="token keyword">if</span><span class="token punctuation">(</span>formel<span class="token punctuation">.</span>type <span class="token operator">==</span> <span class="token string">'file'</span><span class="token punctuation">)</span><span class="token punctuation">{</span> <span class="token keyword">for</span><span class="token punctuation">(</span><span class="token keyword">var</span> ii <span class="token operator">=</span> <span class="token number">0</span><span class="token punctuation">;</span> ii <span class="token operator"><</span> formel<span class="token punctuation">.</span>files<span class="token punctuation">.</span>length<span class="token punctuation">;</span> ii<span class="token operator">++</span><span class="token punctuation">)</span><span class="token punctuation">{</span> <span class="token keyword">var</span> file <span class="token operator">=</span> formel<span class="token punctuation">.</span>files<span class="token punctuation">[</span>ii<span class="token punctuation">]</span><span class="token punctuation">;</span> params<span class="token punctuation">.</span><span class="token function">push</span><span class="token punctuation">(</span><span class="token punctuation">{</span> <span class="token literal-property property">value</span><span class="token operator">:</span> file<span class="token punctuation">,</span> <span class="token literal-property property">name</span><span class="token operator">:</span> file<span class="token punctuation">.</span>name<span class="token punctuation">,</span> <span class="token literal-property property">type</span><span class="token operator">:</span> file<span class="token punctuation">.</span>type<span class="token punctuation">,</span> <span class="token literal-property property">size</span><span class="token operator">:</span> file<span class="token punctuation">.</span>size <span class="token punctuation">}</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token punctuation">}</span> <span class="token punctuation">}</span> <span class="token punctuation">}</span> </code></pre> <p>Also um weitere type=checkbox, radio <select> und <textrea>. Das liefert eine Datenstruktur die</p> <pre><code> 1. Universell ist 2. in beliebige Content-Types serialisiert werden kann. </code></pre> <p>Und im Übrigen FormData überflüssig macht.</p> <p>MfG</p> Datenstrukturen aus Formulareingaben Sat, 28 Jul 18 13:17:37 Z https://forum.selfhtml.org/self/2018/jul/20/braucht-noch-wer-jquery/1727456#m1727456 https://forum.selfhtml.org/self/2018/jul/20/braucht-noch-wer-jquery/1727456#m1727456 <p>Hallo,</p> <blockquote> <blockquote> <p>Der einzige Grund, warum ich mir um dedlfix Gedanken mache, ist, warum er sich mit Deinem wirren Müll überhaupt so beharrlich und besonnen beschäftigt. Masochismus wäre eine Erklärung.</p> </blockquote> <p>ich kann dedlfix's Geduld auch nur noch bewundern.</p> </blockquote> <p>Vor Allem die Resistenz gegenüber Begriffen wie Serializer, Schichtenmodell (Layer) und Transparenz.</p> <p>Wenigstens hat er ja <code>toString()</code> verstanden insofern als daß da OOP/Overload dahintersteckt.</p> <p>MfG</p> Datenstrukturen aus Formulareingaben Sat, 28 Jul 18 13:25:28 Z https://forum.selfhtml.org/self/2018/jul/20/braucht-noch-wer-jquery/1727457#m1727457 https://forum.selfhtml.org/self/2018/jul/20/braucht-noch-wer-jquery/1727457#m1727457 <p>Tach!</p> <blockquote> <p>Das liefert eine Datenstruktur die</p> </blockquote> <p>... fehlerhaft ist. Es gibt Ausnahmen, die beim <a href="https://www.w3.org/TR/html/sec-forms.html#sec-constructing-the-form-data-set" rel="nofollow noopener noreferrer">Zusammenstellen der Formulardaten</a> zu berücksichtigen sind.</p> <blockquote> <pre><code> 1. Universell ist 2. in beliebige Content-Types serialisiert werden kann. </code></pre> <p>Und im Übrigen FormData überflüssig macht.</p> </blockquote> <p>Aus welchem Grunde sollte man das wollen? Und wo ist da jetzt der gravierende Unterschied zu FormData? Was macht die Eigenlösung besser, was man mit FormData nicht hinbekomt?</p> <p>dedlfix.</p> Datenstrukturen aus Formulareingaben Sat, 28 Jul 18 13:42:22 Z https://forum.selfhtml.org/self/2018/jul/20/braucht-noch-wer-jquery/1727460#m1727460 https://forum.selfhtml.org/self/2018/jul/20/braucht-noch-wer-jquery/1727460#m1727460 <p>Hallo pl,</p> <blockquote> <p>Den seine Beitrage haben wenigstens noch einen Bezug zum Fachthema. Im Gegensatz zu dem was da Andere so von sich geben da ist der Begriff Unsachlichkeit schon Schmeichlei. Arroganz ist der richtige Begriff!</p> </blockquote> <p>Deine ersten beiden Sätze sind arrogant. Eine Person ist arrogant, wenn sie ihre Fähigkeiten oder Kenntnisse (berechtigt oder unberechtigt) hoch einschätzt und das abwertend anderen gegenüber zum Ausdruck bringt. Das eigentlich Peinliche ist aber, dass du offenbar wirklich keine Ahnung zu haben scheinst und auch nicht den Arsch in der Hose, das zuzugeben. Möglicherweise warst du wirklich mal ein guter Programmierer, anhand deiner Beiträge hier spreche ich dir jedoch jegliche Teamfähigkeit ab. Du erinnerst mich an Maradonna; einstmals ein Großer, ist sein öffentliches Auftreten heute nur noch daneben.</p> <p>Bis demnächst<br> Matthias</p> <div class="signature">-- <br> Rosen sind rot. </div> Datenstrukturen aus Formulareingaben Sat, 28 Jul 18 13:35:54 Z https://forum.selfhtml.org/self/2018/jul/20/braucht-noch-wer-jquery/1727458#m1727458 https://forum.selfhtml.org/self/2018/jul/20/braucht-noch-wer-jquery/1727458#m1727458 <p>Tach!</p> <blockquote> <blockquote> <p>Das liefert eine Datenstruktur die</p> </blockquote> <p>... fehlerhaft ist. Es gibt Ausnahmen, die beim <a href="https://www.w3.org/TR/html/sec-forms.html#sec-constructing-the-form-data-set" rel="nofollow noopener noreferrer">Zusammenstellen der Formulardaten</a> zu berücksichtigen sind.</p> </blockquote> <p>Du der Code ist ja nicht komplett, er zeigt nur meine Vorgehensweise.</p> <blockquote> <blockquote> <pre><code> 1. Universell ist 2. in beliebige Content-Types serialisiert werden kann. </code></pre> <p>Und im Übrigen FormData überflüssig macht.</p> </blockquote> <p>Aus welchem Grunde sollte man das wollen? Und wo ist da jetzt der gravierende Unterschied zu FormData? Was macht die Eigenlösung besser, was man mit FormData nicht hinbekomt?</p> </blockquote> <p>Meine Methode liefert eine universelle und komplette Datenstruktur, FormData hat keine solche Methode. Aus meiner Datenstruktur kann ich beliebige Enctypes erzeugen, z.B. <code>application/json</code> oder <code>application/x-www-form-urlencoded</code> oder custom.</p> <p>Vielleicht möchten wir ja nocheinmal über den Sinn von Schichtenmodellen reden!?</p> <p>MfG</p> Datenstrukturen aus Formulareingaben Sat, 28 Jul 18 13:50:10 Z https://forum.selfhtml.org/self/2018/jul/20/braucht-noch-wer-jquery/1727461#m1727461 https://forum.selfhtml.org/self/2018/jul/20/braucht-noch-wer-jquery/1727461#m1727461 <p>Tach!</p> <blockquote> <p>Meine Methode liefert eine universelle und komplette Datenstruktur, FormData hat keine solche Methode.</p> </blockquote> <pre><code class="block language-javascript"><span class="token keyword">for</span> <span class="token punctuation">(</span><span class="token keyword">let</span> pair <span class="token keyword">of</span> formData<span class="token punctuation">)</span> <span class="token punctuation">{</span> console<span class="token punctuation">.</span><span class="token function">log</span><span class="token punctuation">(</span>pair<span class="token punctuation">[</span><span class="token number">0</span><span class="token punctuation">]</span><span class="token punctuation">,</span> pair<span class="token punctuation">[</span><span class="token number">1</span><span class="token punctuation">]</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token punctuation">}</span> </code></pre> <p>Liefert die Daten vollständig und komplett. Du kannst auch den Iterator nehmen, der von entries() geliefert wird, ist derselbe.</p> <p>Es muss kein Array sein, ein Iterator reicht völlig. Über das Array würdest du auch nur iterieren, um es weiterzuverarbeiten. Also ist der Iterator ausreichend, den FormData bietet.</p> <blockquote> <p>Aus meiner Datenstruktur kann ich beliebige Enctypes erzeugen, z.B. <code>application/json</code> oder <code>application/x-www-form-urlencoded</code> oder custom.</p> </blockquote> <p>Ist das eine Besonderheit, die mit anderen Datenstrukturen nicht zu erreichen ist?</p> <blockquote> <p>Vielleicht möchten wir ja nocheinmal über den Sinn von Schichtenmodellen reden!?</p> </blockquote> <p>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.</p> <p>dedlfix.</p> Datenstrukturen aus Formulareingaben Sat, 28 Jul 18 13:55:35 Z https://forum.selfhtml.org/self/2018/jul/20/braucht-noch-wer-jquery/1727462#m1727462 https://forum.selfhtml.org/self/2018/jul/20/braucht-noch-wer-jquery/1727462#m1727462 <p>Hi,</p> <blockquote> <blockquote> <p>Den seine Beitrage haben wenigstens noch einen Bezug zum Fachthema. Im Gegensatz zu dem was da Andere so von sich geben da ist der Begriff Unsachlichkeit schon Schmeichlei. Arroganz ist der richtige Begriff!</p> </blockquote> <p>Deine ersten beiden Sätze sind arrogant.</p> </blockquote> <p>Nein. Schau mal: Schichtenmodelle als Müll zu bezeichnen kann man noch akzepieren. Aber sauber verlinkte Anwendungen welche die Fakten anschaulich machen, vehement zu ignorieren und Fakten zu verleugnen daß ist schon Arroganz!</p> <p>MfG</p> Datenstrukturen aus Formulareingaben Sat, 28 Jul 18 14:16:17 Z https://forum.selfhtml.org/self/2018/jul/20/braucht-noch-wer-jquery/1727467#m1727467 https://forum.selfhtml.org/self/2018/jul/20/braucht-noch-wer-jquery/1727467#m1727467 <p>Tach!</p> <blockquote> <blockquote> <p>Meine Methode liefert eine universelle und komplette Datenstruktur, FormData hat keine solche Methode.</p> </blockquote> <pre><code class="block language-javascript"><span class="token keyword">for</span> <span class="token punctuation">(</span><span class="token keyword">let</span> pair <span class="token keyword">of</span> formData<span class="token punctuation">)</span> <span class="token punctuation">{</span> console<span class="token punctuation">.</span><span class="token function">log</span><span class="token punctuation">(</span>pair<span class="token punctuation">[</span><span class="token number">0</span><span class="token punctuation">]</span><span class="token punctuation">,</span> pair<span class="token punctuation">[</span><span class="token number">1</span><span class="token punctuation">]</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token punctuation">}</span> </code></pre> <p>Liefert die Daten vollständig und komplett.</p> </blockquote> <p>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.</p> <blockquote> <blockquote> <p>Aus meiner Datenstruktur kann ich beliebige Enctypes erzeugen, z.B. <code>application/json</code> oder <code>application/x-www-form-urlencoded</code> oder custom.</p> </blockquote> <p>Ist das eine Besonderheit, die mit anderen Datenstrukturen nicht zu erreichen ist?</p> </blockquote> <p>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.</p> <blockquote> <blockquote> <p>Vielleicht möchten wir ja nocheinmal über den Sinn von Schichtenmodellen reden!?</p> </blockquote> <p>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.</p> </blockquote> <p>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.</p> <p>Genau deswegen reden wir vom Transport~, DataAcccess~ und anderen Layers. du hast doch einmal selbst den Begriff <code>Monolith</code> 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.</p> <p>Wenn man unmittelbar aus dem <form> einen bestimmten Enctype erstellt, geht das freilich auch fernab jeglicher Schichtenmodelle.</p> <p>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.</p> <p>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!</p> <p>Dafür sind wir Programmierer.</p> Datenstrukturen aus Formulareingaben Sat, 28 Jul 18 14:12:01 Z https://forum.selfhtml.org/self/2018/jul/20/braucht-noch-wer-jquery/1727466#m1727466 https://forum.selfhtml.org/self/2018/jul/20/braucht-noch-wer-jquery/1727466#m1727466 <p>Hallo pl,</p> <blockquote> <blockquote> <blockquote> <p>Den seine Beitrage haben wenigstens noch einen Bezug zum Fachthema. Im Gegensatz zu dem was da Andere so von sich geben da ist der Begriff Unsachlichkeit schon Schmeichlei. Arroganz ist der richtige Begriff!</p> </blockquote> <p>Deine ersten beiden Sätze sind arrogant.</p> </blockquote> <p>Nein.</p> </blockquote> <p>Doch. "Den seine" ist abwertend, weil du weißt, über wen du redest. "wenigstens noch einen Bezug zum Fachthema" ist ebenfalls abwertend, denn du unterstellst dedlfix und allen anderen, fachlich völlig falsch zu liegen.</p> <blockquote> <p>Schau mal: Schichtenmodelle als Müll zu bezeichnen kann man noch akzepieren.</p> </blockquote> <p>Hab ich nicht gelesen. In diesem Thread kommt außerhalb von Zitaten das Wort Müll viermal vor, dreimal verwendest du es:</p> <ul> <li>"Deine Ersatzlösung liefert undefined=undefined&undefined=undefined&undefined=undefined dass sieht zwar aus wie application/x-www-form-urlencoded ist aber Müll." (<a href="https://forum.selfhtml.org/m1727319" rel="noopener noreferrer">https://forum.selfhtml.org/m1727319</a>) Bedeutet im Sachzusammenhang "Dedlfix' Ersatzlösung ist Müll."</li> <li>"Dein URLSearchParams(formData).to String() liefert Müll!" (<a href="https://forum.selfhtml.org/m1727375" rel="noopener noreferrer">https://forum.selfhtml.org/m1727375</a>) ist zwar schon etwas netter, aber immer noch abwertend.</li> </ul> <p>Was du anderen unterstellst, tust du selbst.</p> <blockquote> <p>Aber sauber verlinkte Anwendungen welche die Fakten anschaulich machen, vehement zu ignorieren und Fakten zu verleugnen daß ist schon Arroganz!</p> </blockquote> <p>Deine Anwendung macht nichts anschaulich. Sie ist eine Blackbox, das das gewünschte Ergebnis liefert. Was wirklich passiert, weißt nur du.</p> <p>Bis demnächst<br> Matthias</p> <div class="signature">-- <br> Rosen sind rot. </div> Datenstrukturen aus Formulareingaben Sat, 28 Jul 18 14:27:30 Z https://forum.selfhtml.org/self/2018/jul/20/braucht-noch-wer-jquery/1727468#m1727468 https://forum.selfhtml.org/self/2018/jul/20/braucht-noch-wer-jquery/1727468#m1727468 <p>hi,</p> <blockquote> <p>Was du anderen unterstellst, tust du selbst.</p> </blockquote> <p>Ja. Der Unterschied ist der, daß ich auch begründen kann wenn ich was als Müll bezeichne!</p> <blockquote> <blockquote> <p>Aber sauber verlinkte Anwendungen welche die Fakten anschaulich machen, vehement zu ignorieren und Fakten zu verleugnen daß ist schon Arroganz!</p> </blockquote> <p>Deine Anwendung macht nichts anschaulich. Sie ist eine Blackbox, das das gewünschte Ergebnis liefert. Was wirklich passiert, weißt nur du.</p> </blockquote> <p>Welch arrogante Ignoranz!</p> <p>Was da wirklich passiert ist ausführlich beschrieben, darüber hinaus kann jeder in den Quelltext schauen und in die Entwicklerkonsole!</p> <p>Jeder normale Mensch stellt Fragen wenn er was nicht verstanden hat! Da bin ich der Letzte der da Antworten verweigern würde!</p> <p>Ich biete Dir sogar an, den mailto zu verwenden, auf jeder Seite ist der Link dazu!</p> <p>MfG</p> Datenstrukturen aus Formulareingaben Sat, 28 Jul 18 14:56:54 Z https://forum.selfhtml.org/self/2018/jul/20/braucht-noch-wer-jquery/1727471#m1727471 https://forum.selfhtml.org/self/2018/jul/20/braucht-noch-wer-jquery/1727471#m1727471 <p>hi</p> <blockquote> <p>Deine Anwendung macht nichts anschaulich. Sie ist eine Blackbox, das das gewünschte Ergebnis liefert. Was wirklich passiert, weißt nur du.</p> </blockquote> <p>Meine Demo~Anwendung als Blackbox zu bezeichnen ist schon ziemlich dreist, findest Du nicht auch!?</p> <p>MfG</p> Datenstrukturen aus Formulareingaben Sat, 28 Jul 18 15:00:45 Z https://forum.selfhtml.org/self/2018/jul/20/braucht-noch-wer-jquery/1727472#m1727472 https://forum.selfhtml.org/self/2018/jul/20/braucht-noch-wer-jquery/1727472#m1727472 <p>Hallo pl,</p> <blockquote> <p>Meine Demo~Anwendung als Blackbox zu bezeichnen ist schon ziemlich dreist, findest Du nicht auch!?</p> </blockquote> <p>Nein, das finde ich nicht.</p> <p>Bis demnächst<br> Matthias</p> <div class="signature">-- <br> Rosen sind rot. </div> Datenstrukturen aus Formulareingaben Sat, 28 Jul 18 15:21:59 Z https://forum.selfhtml.org/self/2018/jul/20/braucht-noch-wer-jquery/1727475#m1727475 https://forum.selfhtml.org/self/2018/jul/20/braucht-noch-wer-jquery/1727475#m1727475 <p><a href="/users/2" class="mention registered-user" rel="noopener noreferrer">@Matthias Apsel</a></p> <blockquote> <blockquote> <p>Meine Demo~Anwendung als Blackbox zu bezeichnen ist schon ziemlich dreist, findest Du nicht auch!?</p> </blockquote> <p>Nein, das finde ich nicht.</p> </blockquote> <p>Also doch arrogant. Da lag ich schon richtig.</p> <p>Punkt.</p> Braucht noch wer jQuery? Sat, 28 Jul 18 15:18:19 Z https://forum.selfhtml.org/self/2018/jul/20/braucht-noch-wer-jquery/1727474#m1727474 https://forum.selfhtml.org/self/2018/jul/20/braucht-noch-wer-jquery/1727474#m1727474 <p>Tach!</p> <blockquote> <p>Damit ich dir hier keine Antwort schuldig bleibe: Das liefert ebenfalls ein unbrauchbares Ergebnis <code>%5Bobject+FormData%5D=</code></p> </blockquote> <p>Die erwartete Antwort wäre ein vollständig lauffähiges Beispiel, das den genannten Fehler produziert. Mir scheint, du rufst an irgendeiner Stelle das toString() von FormData auf und schickst das Ergebnis anschließend durch URLSearchParams. Wenn ich das so falsch durchführe, bekomme ich auch dieses falsche Ergebnis.</p> <p>Da ist ein jsfiddle zum testen: <a href="https://jsfiddle.net/u0efxmya/2/" rel="noopener noreferrer">https://jsfiddle.net/u0efxmya/2/</a></p> <p>dedlfix.</p> Braucht noch wer jQuery? Sat, 28 Jul 18 15:28:45 Z https://forum.selfhtml.org/self/2018/jul/20/braucht-noch-wer-jquery/1727476#m1727476 https://forum.selfhtml.org/self/2018/jul/20/braucht-noch-wer-jquery/1727476#m1727476 <p>Tach!</p> <blockquote> <blockquote> <p>Damit ich dir hier keine Antwort schuldig bleibe: Das liefert ebenfalls ein unbrauchbares Ergebnis <code>%5Bobject+FormData%5D=</code></p> </blockquote> <p>Die erwartete Antwort wäre ein vollständig lauffähiges Beispiel, das den genannten Fehler produziert. Mir scheint, du rufst an irgendeiner Stelle das toString() von FormData auf und schickst das Ergebnis anschließend durch URLSearchParams. Wenn ich das so falsch durchführe, bekomme ich auch dieses falsche Ergebnis.</p> <p>Da ist ein jsfiddle zum testen: <a href="https://jsfiddle.net/u0efxmya/2/" rel="noopener noreferrer">https://jsfiddle.net/u0efxmya/2/</a></p> </blockquote> <p>Das liefert <code>%5Bobject+FormData%5D=</code> aber danke für Deine Bemühungen. Und wie bereits begründet, finde ich diesen Lösungsanstz auch nicht zielführend, werde den von daher auch nicht weiter verfolgen.</p> <p>MfG</p> Braucht noch wer jQuery? Sun, 29 Jul 18 14:34:45 Z https://forum.selfhtml.org/self/2018/jul/20/braucht-noch-wer-jquery/1727536#m1727536 https://forum.selfhtml.org/self/2018/jul/20/braucht-noch-wer-jquery/1727536#m1727536 <p>Hallo dedlfix,</p> <blockquote> <p>Mir scheint, du rufst an irgendeiner Stelle das toString() von FormData auf und schickst das Ergebnis anschließend durch URLSearchParams. Wenn ich das so falsch durchführe, bekomme ich auch dieses falsche Ergebnis.</p> </blockquote> <p>Also quasi</p> <pre><code class="block language-js"><span class="token function">URLSearchParams</span><span class="token punctuation">(</span><span class="token keyword">new</span> <span class="token class-name">FormData</span><span class="token punctuation">(</span>ff<span class="token punctuation">)</span><span class="token punctuation">.</span><span class="token function">toString</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span> </code></pre> <p>statt</p> <pre><code class="block language-js"><span class="token function">URLSearchParams</span><span class="token punctuation">(</span><span class="token keyword">new</span> <span class="token class-name">FormData</span><span class="token punctuation">(</span>ff<span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">.</span><span class="token function">toString</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span> </code></pre> <p>?</p> <p>Bis demnächst<br> Matthias</p> <div class="signature">-- <br> Rosen sind rot. </div> Datenstrukturen aus Formulareingaben Sat, 28 Jul 18 15:32:48 Z https://forum.selfhtml.org/self/2018/jul/20/braucht-noch-wer-jquery/1727479#m1727479 https://forum.selfhtml.org/self/2018/jul/20/braucht-noch-wer-jquery/1727479#m1727479 <p>Hallo pl,</p> <blockquote> <blockquote> <blockquote> <p>Meine Demo~Anwendung als Blackbox zu bezeichnen ist schon ziemlich dreist, findest Du nicht auch!?</p> </blockquote> <p>Nein, das finde ich nicht.</p> </blockquote> <p>Also doch arrogant. Da lag ich schon richtig.</p> </blockquote> <p>Wenn du meintest, dass du dich arrogant verhältst, dann lagst du richtig, ja.</p> <p>LG,<br> CK</p> <div class="signature">-- <br> <a href="https://wwwtech.de/about" rel="noopener noreferrer">https://wwwtech.de/about</a> </div> Braucht noch wer jQuery? Sat, 28 Jul 18 15:31:22 Z https://forum.selfhtml.org/self/2018/jul/20/braucht-noch-wer-jquery/1727477#m1727477 https://forum.selfhtml.org/self/2018/jul/20/braucht-noch-wer-jquery/1727477#m1727477 <p>Hallo pl,</p> <blockquote> <blockquote> <p>Da ist ein jsfiddle zum testen: <a href="https://jsfiddle.net/u0efxmya/2/" rel="noopener noreferrer">https://jsfiddle.net/u0efxmya/2/</a></p> </blockquote> <p>Das liefert <code>%5Bobject+FormData%5D=</code></p> </blockquote> <p>Da lügst du jetzt aber.</p> <p>LG,<br> CK</p> <div class="signature">-- <br> <a href="https://wwwtech.de/about" rel="noopener noreferrer">https://wwwtech.de/about</a> </div> Braucht noch wer jQuery? Sat, 28 Jul 18 15:32:47 Z https://forum.selfhtml.org/self/2018/jul/20/braucht-noch-wer-jquery/1727478#m1727478 https://forum.selfhtml.org/self/2018/jul/20/braucht-noch-wer-jquery/1727478#m1727478 <p>Hi,</p> <blockquote> <blockquote> <p>Da ist ein jsfiddle zum testen: <a href="https://jsfiddle.net/u0efxmya/2/" rel="noopener noreferrer">https://jsfiddle.net/u0efxmya/2/</a></p> </blockquote> <p>Das liefert <code>%5Bobject+FormData%5D=</code></p> </blockquote> <p>nein, das liefert <code>foo=fooval&bar=barval</code>.</p> <p>cu,<br> Andreas a/k/a MudGuard</p> Braucht noch wer jQuery? Sat, 28 Jul 18 15:34:08 Z https://forum.selfhtml.org/self/2018/jul/20/braucht-noch-wer-jquery/1727480#m1727480 https://forum.selfhtml.org/self/2018/jul/20/braucht-noch-wer-jquery/1727480#m1727480 <p>Tach!</p> <blockquote> <blockquote> <p>Da ist ein jsfiddle zum testen: <a href="https://jsfiddle.net/u0efxmya/2/" rel="noopener noreferrer">https://jsfiddle.net/u0efxmya/2/</a></p> </blockquote> <p>Das liefert <code>%5Bobject+FormData%5D=</code></p> </blockquote> <p>In welchem Browser, unter welchen anderen Umständen? Ich denke, du weißt, dass man zur Fehlersuche solche Angaben machen sollte, wenn es hilfreich sein soll.</p> <p>dedlfix.</p> Braucht noch wer jQuery? Sat, 28 Jul 18 16:36:13 Z https://forum.selfhtml.org/self/2018/jul/20/braucht-noch-wer-jquery/1727484#m1727484 https://forum.selfhtml.org/self/2018/jul/20/braucht-noch-wer-jquery/1727484#m1727484 <p>Hallo,</p> <blockquote> <blockquote> <p>Da ist ein jsfiddle zum testen: <a href="https://jsfiddle.net/u0efxmya/2/" rel="noopener noreferrer">https://jsfiddle.net/u0efxmya/2/</a></p> </blockquote> <p>Das liefert <code>%5Bobject+FormData%5D=</code> aber danke für Deine Bemühungen.</p> </blockquote> <p>also bei mir im iPhone gehts.</p> <blockquote> <p>Und wie bereits begründet, finde ich diesen Lösungsanstz auch nicht zielführend, werde den von daher auch nicht weiter verfolgen.</p> </blockquote> <p>Offensichtlich verwendest du irgendeine System-Browserkombination, die diesen Lösungsansatz nicht unterstützt.</p> <p>Gruß<br> Jürgen</p> Braucht noch wer jQuery? Sun, 29 Jul 18 13:11:50 Z https://forum.selfhtml.org/self/2018/jul/20/braucht-noch-wer-jquery/1727518#m1727518 https://forum.selfhtml.org/self/2018/jul/20/braucht-noch-wer-jquery/1727518#m1727518 <p>Moin pl,</p> <blockquote> <blockquote> <p>Da ist ein jsfiddle zum testen: <a href="https://jsfiddle.net/u0efxmya/2/" rel="noopener noreferrer">https://jsfiddle.net/u0efxmya/2/</a></p> </blockquote> <p>Das liefert <code>%5Bobject+FormData%5D=</code></p> </blockquote> <p>auf welchem Browser, in welcher Version und welchem Betriebssystem?</p> <ul> <li>Unter Linux Mint 18.1 erhalte ich mit: <ul> <li>Firefox 61.0.1: <code>foo=fooval&bar=barval</code></li> <li>Chromium 67.0: <code>foo=fooval&bar=barval</code></li> <li>Konqueror 4.14.16: kann das Fiddle nicht anzeigen </li> </ul> </li> <li>Auf dem Telefon mit SailfishOS wird das Fiddle an sich schon nicht korrekt angezeigt (scheint Probleme mit der Bildschirmgröße zu haben?)</li> <li>Unter Windows 10 erhalte ich mit: <ul> <li>Firefox 61.0.1: <code>foo=fooval&bar=barval</code></li> <li>Microsoft Edge 42: „Ungültiges Argument“ beim Aufruf von <code>FormData</code></li> <li>Microsoft Internet Explorer 11: eine „tanzende“ Wolke</li> </ul> </li> </ul> <p>Viele Grüße<br> Robert</p> Braucht noch wer jQuery? Sat, 28 Jul 18 17:19:36 Z https://forum.selfhtml.org/self/2018/jul/20/braucht-noch-wer-jquery/1727489#m1727489 https://forum.selfhtml.org/self/2018/jul/20/braucht-noch-wer-jquery/1727489#m1727489 <p>Tach!</p> <blockquote> <blockquote> <blockquote> <p>Da ist ein jsfiddle zum testen: <a href="https://jsfiddle.net/u0efxmya/2/" rel="noopener noreferrer">https://jsfiddle.net/u0efxmya/2/</a></p> </blockquote> <p>Das liefert <code>%5Bobject+FormData%5D=</code></p> </blockquote> <p>In welchem Browser, unter welchen anderen Umständen? Ich denke, du weißt, dass man zur Fehlersuche solche Angaben machen sollte, wenn es hilfreich sein soll.</p> </blockquote> <p>Ja sicher. Wenn Du da Hilfe brauchst, schick mir einfach ne Mail.</p> <p>MfG</p> Braucht noch wer jQuery? Sun, 29 Jul 18 13:53:41 Z https://forum.selfhtml.org/self/2018/jul/20/braucht-noch-wer-jquery/1727524#m1727524 https://forum.selfhtml.org/self/2018/jul/20/braucht-noch-wer-jquery/1727524#m1727524 <p><a href="/users/27" class="mention registered-user" rel="noopener noreferrer">@dedlfix</a> Tach!</p> <blockquote> <blockquote> <blockquote> <p>Da ist ein jsfiddle zum testen: <a href="https://jsfiddle.net/u0efxmya/2/" rel="noopener noreferrer">https://jsfiddle.net/u0efxmya/2/</a></p> </blockquote> <p>Das liefert <code>%5Bobject+FormData%5D=</code></p> </blockquote> <p>In welchem Browser, unter welchen anderen Umständen? Ich denke, du weißt, dass man zur Fehlersuche solche Angaben machen sollte, wenn es hilfreich sein soll.</p> </blockquote> <p>Du nutzt eine Software nicht so wie sie dokumentiert ist. Also so wie Du sie einsetzt, ist sie nicht dokumentiert. Ein professioneller Entwickler würde sowas schonmal gar nicht machen.</p> <p>Und ein Hersteller würde dazu sagen: No Support.</p> <p>MfG</p> Braucht noch wer jQuery? Sat, 28 Jul 18 17:07:38 Z https://forum.selfhtml.org/self/2018/jul/20/braucht-noch-wer-jquery/1727487#m1727487 https://forum.selfhtml.org/self/2018/jul/20/braucht-noch-wer-jquery/1727487#m1727487 <p>Hallo,</p> <blockquote> <p>Offensichtlich verwendest du irgendeine System-Browserkombination, die diesen Lösungsansatz nicht unterstützt.</p> </blockquote> <p>Wahrscheinlich ist mein FF zu alt aber im Chrome ergibt sich dasselbe unbrauchbare Ergebnis. Außerdem beschreibt MDN selbst <code>URLSearchParams</code> als experimentelles Feature. Wohingegen <code>document.forms.elements</code> in jedem Browser funktioniert. Schon von daher erachte ich es für zielführender darauf aufzubauen.</p> <p>Aber wo ich Dich schonmal dran habe, was ist denn Deine Lösung für jquery.serialize?</p> <p>MfG</p> Braucht noch wer jQuery? Sat, 28 Jul 18 18:03:30 Z https://forum.selfhtml.org/self/2018/jul/20/braucht-noch-wer-jquery/1727490#m1727490 https://forum.selfhtml.org/self/2018/jul/20/braucht-noch-wer-jquery/1727490#m1727490 <p>Hallo,</p> <blockquote> <p>Aber wo ich Dich schonmal dran habe, was ist denn Deine Lösung für jquery.serialize?</p> </blockquote> <p>ich habe bisher jquery nicht benötigt. auch verwende ich keine serverseitige Technik. Wenn ich URL-Parameter verwende, dann nur um Javascripte zu steuern. Das „Aufdröseln“ der Parameter mache ich (noch) zu Fuß mit <code>split</code>, auch, weil ich keine Formulare verwende.</p> <p>Gruß<br> Jürgen</p> Braucht noch wer jQuery? Sat, 28 Jul 18 18:51:55 Z https://forum.selfhtml.org/self/2018/jul/20/braucht-noch-wer-jquery/1727491#m1727491 https://forum.selfhtml.org/self/2018/jul/20/braucht-noch-wer-jquery/1727491#m1727491 <p>Hallo,</p> <blockquote> <blockquote> <p>Aber wo ich Dich schonmal dran habe, was ist denn Deine Lösung für jquery.serialize?</p> </blockquote> </blockquote> <blockquote> <p>ich habe bisher jquery nicht benötigt. auch verwende ich keine serverseitige Technik. Wenn ich URL-Parameter verwende, dann nur um Javascripte zu steuern. Das „Aufdröseln“ der Parameter mache ich (noch) zu Fuß mit <code>split</code>, auch, weil ich keine Formulare verwende.</p> </blockquote> <p>Das Aufdröseln könntest Du mit <code>URLSearchParams</code> machen, dafür wurde das entwickelt. Das macht auch das Percentencoding rückgängig.</p> <p>Aber das mit <code>split</code> zu machen ist völlig in Ordnung. Ich kenne einige und gehörte selbst auch zu denen, die ajax Responses als <code>application/x-www-form-urlencoded</code> verarbeiten. Man bekommt Schlüssel:Werte Paare wobei Werte auch Arrays sein können.</p> <p>Je nachdem wie ein solcher Deserializer eingestellt ist, wird entweder ein Array geliefert oder alles zusammen in einem Objekt. Dieser Enctype ist also nicht nur für den Request geeignet sondern auch für die Response wenn komplexe Daten zu übertragen sind.</p> <p>The Name-Value Pair (NVP) API provides parameter-based association between the request and response fields of a message and their values. <a href="https://developer.paypal.com/docs/classic/api/NVPAPIOverview/" rel="nofollow noopener noreferrer">PayPal</a> also macht das auch so und <a href="https://developer.paypal.com/docs/classic/api/nvpsoap-sdks/" rel="nofollow noopener noreferrer">unterstützt verschiedene PLs</a> auf diese Art und Weise.</p> <p>So wie es aussieht, gibt es die ganze API von PayPal in SOAP und NVP gleichermaßen. Und selbstverständlich wird ein Shopentwickler dabei auf ein bewährtes Schichtenmodell zurückgreifen, also von wegen <a href="https://forum.selfhtml.org/self/2018/jul/20/braucht-noch-wer-jquery/1727435#m1727435" rel="noopener noreferrer">wirrer Müll</a> -- aber warum jemand dermaßen <a href="https://forum.selfhtml.org/self/2018/jul/20/braucht-noch-wer-jquery/1727435#m1727435" rel="noopener noreferrer">trollt</a> sollte uns beiden eigentlich klar sein.</p> <p>Eine solche <a href="https://forum.selfhtml.org/self/2018/jul/20/braucht-noch-wer-jquery/1727435#m1727435" rel="noopener noreferrer">Trollerei</a> hat mit Fachwissen überhaupt nichts mehr zu tun.</p> <p>Schöne Grüße.</p> Braucht noch wer jQuery? Sat, 28 Jul 18 21:31:59 Z https://forum.selfhtml.org/self/2018/jul/20/braucht-noch-wer-jquery/1727495#m1727495 https://forum.selfhtml.org/self/2018/jul/20/braucht-noch-wer-jquery/1727495#m1727495 <p>Hallo,</p> <p>erst mal, hier trollt niemand.</p> <p>Die Ausgangsfrage war, kann man den jQuery Serialisierer durch einfaches Javascript ersetzen, und die Antwort war ja, mit modernem JS ist das möglich. Die Weiterverarbeitung ist zwar wichtig, ebenso die Unterstützung unmoderner Browser, aber nicht Teil dieser Frage.</p> <p>Gruß<br> Jürgen</p> jquery vs modern JS Sun, 29 Jul 18 05:19:27 Z https://forum.selfhtml.org/self/2018/jul/20/braucht-noch-wer-jquery/1727499#m1727499 https://forum.selfhtml.org/self/2018/jul/20/braucht-noch-wer-jquery/1727499#m1727499 <p>Hallo Jürgen,</p> <blockquote> <p>erst mal, hier trollt niemand.</p> </blockquote> <p>Doch, aber sowas von. Wer das was ich hier an Grundwissen vermittle als <a href="https://forum.selfhtml.org/self/2018/jul/20/braucht-noch-wer-jquery/1727435#m1727435" rel="noopener noreferrer">wirren Müll</a> bezeichnet ist ein Troll, das ist überhaupt keine Frage!</p> <blockquote> <p>Die Ausgangsfrage war, kann man den jQuery Serialisierer durch einfaches Javascript ersetzen, und die Antwort war ja, mit modernem JS ist das möglich.</p> </blockquote> <p>Es war schon immer möglich!</p> <p>Und falls Du mit dem Begriff <code>modernes JS</code> auf FormData abzielst, das ist alles Andere als modern, denn es ist alter Schrott nur neu verpackt. Der Aufwand, mit dem man aus diesem Schrott was Modernes hätte machen können, wäre sehr gering, das war sogar schon Thema hier im Forum, vielleicht kannst Du Dich ja daran erinnern.</p> <blockquote> <p>Die Weiterverarbeitung ist zwar wichtig, ebenso die Unterstützung unmoderner Browser, aber nicht Teil dieser Frage.</p> </blockquote> <p>Browserunterstützung und Weiterverarbeitung sind immer Teil der Frage. Die Verarbeitung eines mit Enctype <code>multipart/form-data</code> kodierten Inhalts ist nämlich alles Andere als CPU und RAM gefällig. Du bist doch selbst Programmierer und hast einen Parser für den anderern Enctype geschrieben. Dann kannst Du vielleicht den Aufwand schon ahnen, den das Parsen einer multipart/form-data Byte Sequenz erfordert.</p> <p>Zumal man einen Enctype nicht einfach durch einen anderen Enctype ersetzen kann, eben wegen einer Weiterverarbeitung. Auch das sollte ein Programmierer wie Du es bist wissen.</p> <p>Und ja, der Default Enctype kann zwar auch durch +Stringverkettungen erstellt werden, aber den Umweg über eine Datenstruktur würdest Du wahrscheinlich auch gehen: Aus den Daten ein Array erzeugen und daraus mit <code>join</code> den String. Jeder Serializer arbeitet über den Umweg einer Datenstruktur.</p> <p>Daß man an den Default Enctype application/x-www-form-urlencoded Daten anhängen kann, ist eine Besonderheit dieses speziellen Enctypes. Mit anderen Enctypes ist das nämlich gar nicht möglich, ohne diese aufzutrennen, siehe JSON, XML. Von daher ist die Frage ob einer Datenstruktur zum Serialisieren für Entwickler wie uns beide doch auch geklärt, also kein Grund daraus eine Zirkusveranstaltung zu machen.</p> <p>Alles Dinge die ein Entwickler wissen sollte, wenn es um einen Ersatz für jquery.serialize geht.</p> <p>Schönen Sonntag!</p> jquery vs modern JS Sun, 29 Jul 18 08:27:23 Z https://forum.selfhtml.org/self/2018/jul/20/braucht-noch-wer-jquery/1727507#m1727507 https://forum.selfhtml.org/self/2018/jul/20/braucht-noch-wer-jquery/1727507#m1727507 <p>Hallo,</p> <blockquote> <p>Doch, aber sowas von. Wer das was ich hier an Grundwissen vermittle als <a href="https://forum.selfhtml.org/self/2018/jul/20/braucht-noch-wer-jquery/1727435#m1727435" rel="noopener noreferrer">wirren Müll</a> bezeichnet ist ein Troll, das ist überhaupt keine Frage!</p> </blockquote> <p>überschätzt du dich da nicht?</p> <blockquote> <p>[…]</p> </blockquote> <blockquote> <p>Alles Dinge die ein Entwickler wissen sollte, wenn es um einen Ersatz für jquery.serialize geht.</p> </blockquote> <p>finde ich nicht. Bei meinem (De-)Serialisierer habe ich das alles nicht gebraucht.</p> <p>Gruß<br> Jürgen</p> jquery vs modern JS Sun, 29 Jul 18 14:01:23 Z https://forum.selfhtml.org/self/2018/jul/20/braucht-noch-wer-jquery/1727526#m1727526 https://forum.selfhtml.org/self/2018/jul/20/braucht-noch-wer-jquery/1727526#m1727526 <p>Hallo,</p> <blockquote> <blockquote> <p>Alles Dinge die ein Entwickler wissen sollte, wenn es um einen Ersatz für jquery.serialize geht.</p> </blockquote> </blockquote> <blockquote> <p>finde ich nicht. Bei meinem (De-)Serialisierer habe ich das alles nicht gebraucht.</p> </blockquote> <p>Dann kann Dein Ergebnis ja nur ein glücklicher Zufall sein </p> <p>MfG</p> FromData toString und Kontextwechsel Sun, 29 Jul 18 13:07:12 Z https://forum.selfhtml.org/self/2018/jul/20/braucht-noch-wer-jquery/1727517#m1727517 https://forum.selfhtml.org/self/2018/jul/20/braucht-noch-wer-jquery/1727517#m1727517 <p>Tach!</p> <blockquote> <p>Fehlt hier nicht irgendwo ein Punkt, z.B. <code class="language-python">Container<span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">.</span>Container<span class="token punctuation">.</span>__data<span class="token punctuation">.</span>append<span class="token punctuation">(</span><span class="token string">'value'</span><span class="token punctuation">)</span></code>?</p> </blockquote> <p>Nein, das hat gemäß den nachlesbaren Regel so gestimmt.</p> <blockquote> <p>Man kann das innere <code>data</code>-Array verändern, obwohl es <code class="language-js"><span class="token keyword">const</span></code> ist?</p> </blockquote> <p>data bleibt konstant und wurde nicht verändert. Diese Variable verweist immer nur auf dieselbe Instanz von Array. Dass sich die Eigenschaften des Arrays ändern, ist dabei nicht von Belang.</p> <p>dedlfix.</p> FromData toString und Kontextwechsel Sun, 29 Jul 18 13:28:01 Z https://forum.selfhtml.org/self/2018/jul/20/braucht-noch-wer-jquery/1727520#m1727520 https://forum.selfhtml.org/self/2018/jul/20/braucht-noch-wer-jquery/1727520#m1727520 <p>Moin dedlfix,</p> <blockquote> <blockquote> <p>Fehlt hier nicht irgendwo ein Punkt, z.B. <code class="language-python">Container<span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">.</span>Container<span class="token punctuation">.</span>__data<span class="token punctuation">.</span>append<span class="token punctuation">(</span><span class="token string">'value'</span><span class="token punctuation">)</span></code>?</p> </blockquote> <p>Nein, das hat gemäß den nachlesbaren Regel so gestimmt.</p> </blockquote> <p>Wo sind die denn nachzulesen?</p> <blockquote> <blockquote> <p>Man kann das innere <code>data</code>-Array verändern, obwohl es <code class="language-js"><span class="token keyword">const</span></code> ist?</p> </blockquote> <p>data bleibt konstant und wurde nicht verändert. Diese Variable verweist immer nur auf dieselbe Instanz von Array. Dass sich die Eigenschaften des Arrays ändern, ist dabei nicht von Belang.</p> </blockquote> <p>Die Referenz ist konstant. OK, das ist ein Unterschied zu</p> <pre><code class="block language-c++"><span class="token macro property"><span class="token directive-hash">#</span><span class="token directive keyword">include</span> <span class="token string"><vector></span></span> <span class="token keyword">int</span> <span class="token function">main</span><span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token punctuation">{</span> <span class="token keyword">const</span> std<span class="token double-colon punctuation">::</span>vector<span class="token operator"><</span><span class="token keyword">int</span><span class="token operator">></span> v<span class="token punctuation">;</span> v<span class="token punctuation">.</span><span class="token function">push_back</span><span class="token punctuation">(</span><span class="token number">1</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token keyword">return</span> <span class="token number">0</span><span class="token punctuation">;</span> <span class="token punctuation">}</span> </code></pre> <blockquote> <p>g++ -Wall -pedantic -std=c++11 constvec.cpp -o constvec</p> <p>constvec.cpp: In function ‘int main()’:<br> constvec.cpp:6:15: error: passing ‘const std::vector<int>’ as ‘this’ argument discards qualifiers [-fpermissive]<br> v.push_back(1);</p> </blockquote> <p>Viele Grüße<br> Robert</p> Braucht noch wer jQuery? Sun, 29 Jul 18 13:44:55 Z https://forum.selfhtml.org/self/2018/jul/20/braucht-noch-wer-jquery/1727522#m1727522 https://forum.selfhtml.org/self/2018/jul/20/braucht-noch-wer-jquery/1727522#m1727522 <p>hallo</p> <blockquote> <blockquote> <blockquote> <p>Da ist ein jsfiddle zum testen: <a href="https://jsfiddle.net/u0efxmya/2/" rel="noopener noreferrer">https://jsfiddle.net/u0efxmya/2/</a></p> </blockquote> <p>Das liefert <code>%5Bobject+FormData%5D=</code></p> </blockquote> <p>auf welchem Browser, in welcher Version und welchem Betriebssystem?</p> <ul> <li>Unter Linux Mint 18.1 erhalte ich mit: <ul> <li>Firefox 61.0.1: <code>foo=fooval&bar=barval</code></li> </ul> </li> </ul> </blockquote> <p>Ich habe im fiddle in Zeile 5 ein</p> <blockquote> <p><p id="ff">ha</p></p> </blockquote> <p>eingefügt.</p> <p>Rate mal, was für ein Output entsteht.</p> <div class="signature">-- <br> Neu im Forum! Signaturen kann man ausblenden! </div> FromData toString und Kontextwechsel Sun, 29 Jul 18 14:21:06 Z https://forum.selfhtml.org/self/2018/jul/20/braucht-noch-wer-jquery/1727533#m1727533 https://forum.selfhtml.org/self/2018/jul/20/braucht-noch-wer-jquery/1727533#m1727533 <p>Hallo Robert,</p> <blockquote> <p>Die Referenz ist konstant. OK, das ist ein Unterschied zu</p> <pre><code class="block language-c++"><span class="token macro property"><span class="token directive-hash">#</span><span class="token directive keyword">include</span> <span class="token string"><vector></span></span> <span class="token keyword">int</span> <span class="token function">main</span><span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token punctuation">{</span> <span class="token keyword">const</span> std<span class="token double-colon punctuation">::</span>vector<span class="token operator"><</span><span class="token keyword">int</span><span class="token operator">></span> v<span class="token punctuation">;</span> v<span class="token punctuation">.</span><span class="token function">push_back</span><span class="token punctuation">(</span><span class="token number">1</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token keyword">return</span> <span class="token number">0</span><span class="token punctuation">;</span> <span class="token punctuation">}</span> </code></pre> </blockquote> <p>Ja, das fand ich anfangs auch schwer zu akzeptieren, dass die dynamischen Sprachen <code>const</code> einfach umdefiniert haben.</p> <p>LG,<br> CK</p> <div class="signature">-- <br> <a href="https://wwwtech.de/about" rel="noopener noreferrer">https://wwwtech.de/about</a> </div> FromData toString und Kontextwechsel Sun, 29 Jul 18 14:46:49 Z https://forum.selfhtml.org/self/2018/jul/20/braucht-noch-wer-jquery/1727538#m1727538 https://forum.selfhtml.org/self/2018/jul/20/braucht-noch-wer-jquery/1727538#m1727538 <p>Tach!</p> <blockquote> <blockquote> <blockquote> <p>Fehlt hier nicht irgendwo ein Punkt, z.B. <code class="language-python">Container<span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">.</span>Container<span class="token punctuation">.</span>__data<span class="token punctuation">.</span>append<span class="token punctuation">(</span><span class="token string">'value'</span><span class="token punctuation">)</span></code>?</p> </blockquote> <p>Nein, das hat gemäß den nachlesbaren Regel so gestimmt.</p> </blockquote> <p>Wo sind die denn nachzulesen?</p> </blockquote> <p>Im Handbuch, und der Wikipedia. Ich hab nach dem gegebenen Stichwort name mangling gesucht.</p> <blockquote> <p>Die Referenz ist konstant. OK, das ist ein Unterschied zu</p> </blockquote> <p>Ich kann C und C++ nicht lesen. Dazu kann ich also nichts weiter sagen. Deswegen hier ein anderer Erklärungsversuch.</p> <p>Bei Variablen muss man generell zwei Dinge trennen, die Verwaltungsstruktur und der eigentliche Inhalt. Das ist vielleicht nicht ganz korrekt für alle Programmiersprachen, aber als Modell vorgestellt, sollte die Erklärung passen. Variablen sind im Grunde genommen Verwaltungsstrukturen. Skalare/einfache Variablen haben ihren Inhalt mit an Bord in einem Feld dieser Verwaltungsstruktur. Das betrifft zum Beispiel Integer oder Boolean. Die haben eine übersichtlich kleine und feststehende Größe von wenigen Bytes. Bei komplexen Dingen hingegen wird der Inhalt anderenorts abgelegt und die Verwaltungsstruktur enthält lediglich einen Verweis auf diesen Inhalt. Die Verwaltungsstruktur bleibt in sich konstant, wenn sich dieser Verweis nicht ändert, also immer auf dieselbe Speicherstelle zeigt. Die Verwaltungsstruktur überwacht aber nicht den Inhalt am Ziel. Der kann sich beliebig ändern.</p> <p>In diesem Modell zählen auch Strings zu den skalaren Typen, obwohl der Inhalt der Strings eigentlich aufgrund seiner unterschiedlichen Länge ebenfalls anderenorts abgelegt wird und die Verwaltungsstruktur nicht den Inhalt sondern eine Referenz verwaltet. Stringinhalte können sich trotzdem nicht einfach so ändern, denn Stringoperationen arbeiten üblicherweise nicht im für den String zugewiesenen Speicher, sondern das Ergebnis der Operation wird anderenorts neu angelegt und die Verwaltungsstruktur bekommt einen neuen Verweis zum Speichern. Das darf aber bei const nicht sein, und deshalb ändert sich auch bei konstanten Stringvariablen nie der Inhalt.</p> <p>Wie ist das aber bei Objekten zu sehen? Bei streng typisierten Sprachen ändert sich zur Laufzeit nichts am Umfang der Eigenschaften, die ein Objekt hat. Die Eigenschaften sind ihrerseits wieder Verwaltungsstrukturen wie bei den Variablen. Diese liegen an festen Positionen im Speicherbereich des Objekts. Ob sie ihrerseits skalar sind oder referenzieren, ist egal, die Verwaltungsstruktur verbleibt immer am selben Ort. Ihr Inhalt kann sich ändern, das ist völlig unabhängig vom const oder nicht der Verwaltungsstruktur des Objekts. Die Eigenschaften können aber ihrerseits als readonly oder const gekennzeichnet sein (bei Javascript nicht, aber in anderen Sprachen) und unterliegen dann denselben Nicht-Änderungs-Regeln wie eigenständige Variablen.</p> <p>Bei Sprachen wie Javascript, wenn zur Laufzeit Eigenschaften hinzukommen oder entfernt werden können, verändert sich auch nicht direkt das Objekt. Es muss also auch nicht neuer Speicherplatz angefordert werden, der größer als der bisherige ist, und dann die Referenz in der Variable umgeschrieben werden. Stattdessen verwaltet man da eine Referenz auf eine Liste, in der die Eigenschaften verwaltet werden. Der Inhalt der Liste kann sich beliebig ändern. Somit bleibt also auch die Objekt-Variable an sich konstant, sie selbst hat keinen Bedarf, sich gegebenenfalls zu vergrößern, und kann deshalb immer am selben Speicherort liegen.</p> <p>dedlfix.</p> Braucht noch wer jQuery? Sun, 29 Jul 18 13:51:04 Z https://forum.selfhtml.org/self/2018/jul/20/braucht-noch-wer-jquery/1727523#m1727523 https://forum.selfhtml.org/self/2018/jul/20/braucht-noch-wer-jquery/1727523#m1727523 <p>Moin beatovich,</p> <blockquote> <blockquote> <ul> <li>Unter Linux Mint 18.1 erhalte ich mit: <ul> <li>Firefox 61.0.1: <code>foo=fooval&bar=barval</code></li> </ul> </li> </ul> </blockquote> <p>Ich habe im fiddle in Zeile 5 ein</p> <blockquote> <p><p id="ff">ha</p></p> </blockquote> <p>eingefügt.</p> <p>Rate mal, was für ein Output entsteht.</p> </blockquote> <p>Naja, ich sehe den neuen Absatz und dann den Absatz mit dem <code>output</code> darin. Oder worauf sollte sich das beziehen?</p> <p>Viele Grüße<br> Robert</p> Braucht noch wer jQuery? Sun, 29 Jul 18 14:01:25 Z https://forum.selfhtml.org/self/2018/jul/20/braucht-noch-wer-jquery/1727527#m1727527 https://forum.selfhtml.org/self/2018/jul/20/braucht-noch-wer-jquery/1727527#m1727527 <p>hallo</p> <blockquote> <p>Naja, ich sehe den neuen Absatz und dann den Absatz mit dem <code>output</code> darin. Oder worauf sollte sich das beziehen?</p> </blockquote> <p>Das hat jetzt nichts mit dem Thema zu tun.</p> <p>Es genügt, eine id einzuschleussen, und schon hast du Gewalt über den Inhalt.</p> <p>Da hilft nicht mal use strict.</p> <div class="signature">-- <br> Neu im Forum! Signaturen kann man ausblenden! </div> Braucht noch wer jQuery? Sun, 29 Jul 18 13:58:20 Z https://forum.selfhtml.org/self/2018/jul/20/braucht-noch-wer-jquery/1727525#m1727525 https://forum.selfhtml.org/self/2018/jul/20/braucht-noch-wer-jquery/1727525#m1727525 <p>Moin pl,</p> <p><strong>du</strong> bist derjenige, der das Fiddle <em>nutzt</em> und sagt „geht nicht“.</p> <p>Viele Grüße<br> Robert</p> Braucht noch wer jQuery? Sun, 29 Jul 18 14:06:35 Z https://forum.selfhtml.org/self/2018/jul/20/braucht-noch-wer-jquery/1727528#m1727528 https://forum.selfhtml.org/self/2018/jul/20/braucht-noch-wer-jquery/1727528#m1727528 <p>Hallo pl,</p> <blockquote> <p>Du nutzt eine Software nicht so wie sie dokumentiert ist.</p> </blockquote> <p>Welche Software? Welche Dokumentation?</p> <blockquote> <p>Also so wie Du sie einsetzt, ist sie nicht dokumentiert.</p> </blockquote> <p>Welcher Einsatz?</p> <blockquote> <p>Ein professioneller Entwickler würde sowas schonmal gar nicht machen.</p> </blockquote> <p>Genau. Wir wissen ja alle, dass du der einzige professionelle Entwickler hier bist.</p> <p>Bis demnächst<br> Matthias</p> <div class="signature">-- <br> Rosen sind rot. </div> Braucht noch wer jQuery? Sun, 29 Jul 18 15:24:17 Z https://forum.selfhtml.org/self/2018/jul/20/braucht-noch-wer-jquery/1727553#m1727553 https://forum.selfhtml.org/self/2018/jul/20/braucht-noch-wer-jquery/1727553#m1727553 <p>Tach!</p> <blockquote> <p>Du nutzt eine Software nicht so wie sie dokumentiert ist. Also so wie Du sie einsetzt, ist sie nicht dokumentiert. Ein professioneller Entwickler würde sowas schonmal gar nicht machen.</p> </blockquote> <p>Ich habe die entsprechenden Stellen der Dokumentation in einer meiner Antworten verlinkt.</p> <p>dedlfix.</p> Braucht noch wer jQuery? Sun, 29 Jul 18 14:08:55 Z https://forum.selfhtml.org/self/2018/jul/20/braucht-noch-wer-jquery/1727529#m1727529 https://forum.selfhtml.org/self/2018/jul/20/braucht-noch-wer-jquery/1727529#m1727529 <p>Moin pl,</p> <blockquote> <p><strong>du</strong> bist derjenige, der das Fiddle <em>nutzt</em> und sagt „geht nicht“.</p> </blockquote> <p>Eben. Mich wunderts daß es überhaupt irgendwo anders geht angeblich. In der Doku für <code>URLSearchParams</code> steht jedenfalls nichts davon daß man dem Konstruktor ein FormData Objekt übergeben kann.</p> <p>Und in der <code>FromData</code> Doku steht auch nichts diesbezügliches, welcher Kontext soll das denn sein?</p> <p>Für einen poduktiven Einsatz ist solch eine undokumentierte Nutzung völlig undiskutabel.</p> <p>MfG</p> Braucht noch wer jQuery? Sun, 29 Jul 18 15:02:04 Z https://forum.selfhtml.org/self/2018/jul/20/braucht-noch-wer-jquery/1727541#m1727541 https://forum.selfhtml.org/self/2018/jul/20/braucht-noch-wer-jquery/1727541#m1727541 <p>Tach!</p> <blockquote> <blockquote> <p>Naja, ich sehe den neuen Absatz und dann den Absatz mit dem <code>output</code> darin. Oder worauf sollte sich das beziehen?</p> </blockquote> <p>Das hat jetzt nichts mit dem Thema zu tun.</p> <p>Es genügt, eine id einzuschleussen, und schon hast du Gewalt über den Inhalt.</p> <p>Da hilft nicht mal use strict.</p> </blockquote> <p>In dem Fall hilft eine Zeile an den Anfang des Javascript-Teils einzufügen, die ich vergessen habe.</p> <pre><code class="block language-javascript"><span class="token keyword">const</span> ff <span class="token operator">=</span> document<span class="token punctuation">.</span><span class="token function">querySelector</span><span class="token punctuation">(</span><span class="token string">'#ff'</span><span class="token punctuation">)</span><span class="token punctuation">;</span> </code></pre> <p>Zumindest solange das zweite <code>id="ff"</code> erst nachfolgend kommt. Ohne diese Zeile hat das nur geklappt, weil Browser selbständig eine Variable für die id angelegt haben. Die zweite id-Zuweisung hat die erste überschrieben. document.querySelector() hingegen sucht im DOM und endet an der ersten Fundstelle.</p> <p>Dass man clientseitig manipulieren kann, ist halt so in den Browsern. Damit muss man leben. Wenn die Manipulation hingegen unbeabsichtigt durch Dritte - beispielsweise durch XSS - durchgeführt werden konnte, dann hat man irgendwo einen Programierfehler, den man beseitigen muss.</p> <p>dedlfix.</p> Braucht noch wer jQuery? Sun, 29 Jul 18 14:11:30 Z https://forum.selfhtml.org/self/2018/jul/20/braucht-noch-wer-jquery/1727530#m1727530 https://forum.selfhtml.org/self/2018/jul/20/braucht-noch-wer-jquery/1727530#m1727530 <p>Hallo pl,</p> <blockquote> <p>Mich wunderts daß es überhaupt irgendwo anders geht angeblich.</p> </blockquote> <p>In meinem Browser funktioniert das fiddle auch wie gewünscht. Aber bestimmt sage ich nicht die Wahrheit.</p> <p>Bis demnächst<br> Matthias</p> <div class="signature">-- <br> Rosen sind rot. </div> Braucht noch wer jQuery? Sun, 29 Jul 18 14:13:23 Z https://forum.selfhtml.org/self/2018/jul/20/braucht-noch-wer-jquery/1727531#m1727531 https://forum.selfhtml.org/self/2018/jul/20/braucht-noch-wer-jquery/1727531#m1727531 <p>Moin pl,</p> <blockquote> <blockquote> <p><strong>du</strong> bist derjenige, der das Fiddle <em>nutzt</em> und sagt „geht nicht“.</p> </blockquote> <p>Eben.</p> </blockquote> <p>Da du der Nutzer bist und dedlfix der Hersteller des Fiddles, wer von euch beiden ist derjenige, der mit „geht nicht“ Support anfragt und wer ist derjenige, der Support leistet? Merkste hoffentlich selbst.</p> <blockquote> <p>Mich wunderts daß es überhaupt irgendwo anders geht angeblich.</p> </blockquote> <p><a href="https://forum.selfhtml.org/m1727518" rel="noopener noreferrer">Nicht nur angeblich.</a></p> <p>Viele Grüße<br> Robert</p> Braucht noch wer jQuery? Sun, 29 Jul 18 14:20:57 Z https://forum.selfhtml.org/self/2018/jul/20/braucht-noch-wer-jquery/1727532#m1727532 https://forum.selfhtml.org/self/2018/jul/20/braucht-noch-wer-jquery/1727532#m1727532 <p>Moin pl,</p> <blockquote> <blockquote> <blockquote> <p><strong>du</strong> bist derjenige, der das Fiddle <em>nutzt</em> und sagt „geht nicht“.</p> </blockquote> <p>Eben.</p> </blockquote> <p>Da du der Nutzer bist und dedlfix der Hersteller des Fiddles, wer von euch beiden ist derjenige, der mit „geht nicht“ Support anfragt und wer ist derjenige, der Support leistet? Merkste hoffentlich selbst.</p> </blockquote> <p>Daß der Code bei Euch funktioniert, habe ich gar nicht bestritten.</p> <p>Aber zeige doch mal bitte, wo eine Verwendung dieser Art</p> <pre><code> `new URLSearchParams(new FormData(ff)).toString();` </code></pre> <p>dokumentiert ist!</p> <p>MfG</p> Braucht noch wer jQuery? Sun, 29 Jul 18 14:23:02 Z https://forum.selfhtml.org/self/2018/jul/20/braucht-noch-wer-jquery/1727534#m1727534 https://forum.selfhtml.org/self/2018/jul/20/braucht-noch-wer-jquery/1727534#m1727534 <p>Hallo pl,</p> <blockquote> <p>Aber zeige doch mal bitte, wo eine Verwendung dieser Art</p> <pre><code> `new URLSearchParams(new FormData(ff)).toString();` </code></pre> <p>dokumentiert ist!</p> </blockquote> <p>Das hat dedlfix mehrfach erklärt und verlinkt. Hier im Thread. Lies es bitte nach.</p> <p>LG,<br> CK</p> <div class="signature">-- <br> <a href="https://wwwtech.de/about" rel="noopener noreferrer">https://wwwtech.de/about</a> </div> Braucht noch wer jQuery? Sun, 29 Jul 18 14:29:52 Z https://forum.selfhtml.org/self/2018/jul/20/braucht-noch-wer-jquery/1727535#m1727535 https://forum.selfhtml.org/self/2018/jul/20/braucht-noch-wer-jquery/1727535#m1727535 <p>Moin pl,</p> <blockquote> <blockquote> <p>Da du der Nutzer bist und dedlfix der Hersteller des Fiddles, wer von euch beiden ist derjenige, der mit „geht nicht“ Support anfragt und wer ist derjenige, der Support leistet? Merkste hoffentlich selbst.</p> </blockquote> <p>Daß der Code bei Euch funktioniert, habe ich gar nicht bestritten.</p> </blockquote> <p>Du behauptest, dass <a href="https://forum.selfhtml.org/m1727476" rel="noopener noreferrer">der Code bei dir nicht funktioniert</a>.</p> <blockquote> <p>Aber zeige doch mal bitte, wo eine Verwendung dieser Art</p> <pre><code> `new URLSearchParams(new FormData(ff)).toString();` </code></pre> <p>dokumentiert ist!</p> </blockquote> <p>Das tut <a href="https://forum.selfhtml.org/m1727474" rel="noopener noreferrer">in diesem Strang des Themas</a> aber gar nichts zur Sache. Bleib bitte beim Thema oder unterhalte dich alleine.</p> <p>Viele Grüße<br> Robert</p> Braucht noch wer jQuery? Sun, 29 Jul 18 14:40:41 Z https://forum.selfhtml.org/self/2018/jul/20/braucht-noch-wer-jquery/1727537#m1727537 https://forum.selfhtml.org/self/2018/jul/20/braucht-noch-wer-jquery/1727537#m1727537 <p>hi,</p> <blockquote> <blockquote> <blockquote> <p>Da du der Nutzer bist und dedlfix der Hersteller des Fiddles, wer von euch beiden ist derjenige, der mit „geht nicht“ Support anfragt und wer ist derjenige, der Support leistet? Merkste hoffentlich selbst.</p> </blockquote> <p>Daß der Code bei Euch funktioniert, habe ich gar nicht bestritten.</p> </blockquote> <p>Du behauptest, dass <a href="https://forum.selfhtml.org/m1727476" rel="noopener noreferrer">der Code bei dir nicht funktioniert</a>.</p> </blockquote> <p>Ja, so ist nunmal der Fakt. Aber selbst wenn es bei mir funktionieren würde, ich würde es nicht so machen weil diese Art von Verwendung nirgendwo so dokumentiert ist. Anders ausgedrückt ist es für mich nicht nachvollziehbar warum das funktionieren soll.</p> <p>MfG</p> Braucht noch wer jQuery? Sun, 29 Jul 18 14:50:24 Z https://forum.selfhtml.org/self/2018/jul/20/braucht-noch-wer-jquery/1727539#m1727539 https://forum.selfhtml.org/self/2018/jul/20/braucht-noch-wer-jquery/1727539#m1727539 <p>Tach!</p> <blockquote> <blockquote> <p>Mir scheint, du rufst an irgendeiner Stelle das toString() von FormData auf und schickst das Ergebnis anschließend durch URLSearchParams. Wenn ich das so falsch durchführe, bekomme ich auch dieses falsche Ergebnis.</p> </blockquote> <p>Also quasi</p> <pre><code class="block language-js"><span class="token function">URLSearchParams</span><span class="token punctuation">(</span><span class="token keyword">new</span> <span class="token class-name">FormData</span><span class="token punctuation">(</span>ff<span class="token punctuation">)</span><span class="token punctuation">.</span><span class="token function">toString</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span> </code></pre> <p>statt</p> <pre><code class="block language-js"><span class="token function">URLSearchParams</span><span class="token punctuation">(</span><span class="token keyword">new</span> <span class="token class-name">FormData</span><span class="token punctuation">(</span>ff<span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">.</span><span class="token function">toString</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span> </code></pre> <p>?</p> </blockquote> <p>Zumindest bekommt man so das gezeigte falsche Ergebnis. Also, wenn man dann noch ein zweites toString() an das URLSearchParams selbst hängt, damit man den Querystring bekommt.</p> <p>dedlfix.</p> Braucht noch wer jQuery? Sun, 29 Jul 18 14:52:52 Z https://forum.selfhtml.org/self/2018/jul/20/braucht-noch-wer-jquery/1727540#m1727540 https://forum.selfhtml.org/self/2018/jul/20/braucht-noch-wer-jquery/1727540#m1727540 <p>Hallo pl,</p> <blockquote> <p>Ja, so ist nunmal der Fakt. Aber selbst wenn es bei mir funktionieren würde, ich würde es nicht so machen weil diese Art von Verwendung nirgendwo so dokumentiert ist. Anders ausgedrückt ist es für mich nicht nachvollziehbar warum das funktionieren soll.</p> </blockquote> <p>Was denn?</p> <ul> <li><code>FormData()</code></li> <li><code>URLSearchParams()</code></li> <li><code>toString()</code></li> </ul> <p>?</p> <p>Bis demnächst<br> Matthias</p> <div class="signature">-- <br> Rosen sind rot. </div> Braucht noch wer jQuery? Sun, 29 Jul 18 15:07:28 Z https://forum.selfhtml.org/self/2018/jul/20/braucht-noch-wer-jquery/1727544#m1727544 https://forum.selfhtml.org/self/2018/jul/20/braucht-noch-wer-jquery/1727544#m1727544 <p>Moin pl,</p> <blockquote> <blockquote> <blockquote> <p>Daß der Code bei Euch funktioniert, habe ich gar nicht bestritten.</p> </blockquote> <p>Du behauptest, dass <a href="https://forum.selfhtml.org/m1727476" rel="noopener noreferrer">der Code bei dir nicht funktioniert</a>.</p> </blockquote> <p>Ja, so ist nunmal der Fakt.</p> </blockquote> <p>Fakt ist auch, dass du uns technische Informationen vorenthältst um dein „geht nicht“ nachvollziehen zu können.</p> <p>Viele Grüße<br> Robert</p> FromData toString und Kontextwechsel Sun, 29 Jul 18 15:12:08 Z https://forum.selfhtml.org/self/2018/jul/20/braucht-noch-wer-jquery/1727548#m1727548 https://forum.selfhtml.org/self/2018/jul/20/braucht-noch-wer-jquery/1727548#m1727548 <p>Moin dedlfix,</p> <blockquote> <blockquote> <p>Wo sind die denn nachzulesen?</p> </blockquote> <p>Im Handbuch, und der Wikipedia. Ich hab nach dem gegebenen Stichwort name mangling gesucht.</p> </blockquote> <p>Schade, dass du uns an den Funden nicht teilhaben lässt.</p> <p>Viele Grüße<br> Robert</p> FromData toString und Kontextwechsel Sun, 29 Jul 18 15:15:36 Z https://forum.selfhtml.org/self/2018/jul/20/braucht-noch-wer-jquery/1727549#m1727549 https://forum.selfhtml.org/self/2018/jul/20/braucht-noch-wer-jquery/1727549#m1727549 <p>Moin noch einmal,</p> <p>der Unterschied zwischen C++ und JavaScript in Bezug auf <code>const</code> ist hier, dass in C++ das gesamte Objekt als konstant angesehen wird, während es in JavaScript anscheinend nur die Verwaltungsinformationen des Objekts sind, wobei Attribute (wie die Länge) offensichtlich nicht zu diesen Informationen gehören.</p> <p>Viele Grüße<br> Robert</p> FromData toString und Kontextwechsel Sun, 09 Sep 18 20:58:05 Z https://forum.selfhtml.org/self/2018/jul/20/braucht-noch-wer-jquery/1731504#m1731504 https://forum.selfhtml.org/self/2018/jul/20/braucht-noch-wer-jquery/1731504#m1731504 <p>Hallo,</p> <blockquote> <p>Skalare/einfache Variablen haben ihren Inhalt mit an Bord in einem Feld dieser Verwaltungsstruktur. Das betrifft zum Beispiel Integer oder Boolean. Die haben eine übersichtlich kleine und feststehende Größe von wenigen Bytes. Bei komplexen Dingen hingegen wird der Inhalt anderenorts abgelegt und die Verwaltungsstruktur enthält lediglich einen Verweis auf diesen Inhalt. Die Verwaltungsstruktur bleibt in sich konstant, wenn sich dieser Verweis nicht ändert, also immer auf dieselbe Speicherstelle zeigt. Die Verwaltungsstruktur überwacht aber nicht den Inhalt am Ziel. Der kann sich beliebig ändern.</p> </blockquote> <p>In Python sind auch Skalare "nur" Referenzen auf den Inhalt. In Python ist alles ein Objekt. So habe ich das zumindest mal gelernt. Orlok weiss das sicher besser.</p> <p>grüße</p> Braucht noch wer jQuery? Sun, 29 Jul 18 15:02:13 Z https://forum.selfhtml.org/self/2018/jul/20/braucht-noch-wer-jquery/1727542#m1727542 https://forum.selfhtml.org/self/2018/jul/20/braucht-noch-wer-jquery/1727542#m1727542 <p>Hallo dedlfix,</p> <blockquote> <p>Zumindest bekommt man so das gezeigte falsche Ergebnis. Also, wenn man dann noch ein zweites toString() an das URLSearchParams selbst hängt, damit man den Querystring bekommt.</p> </blockquote> <p>Der simple Klammerfehler liefert bei mir als HTML-Ausgabe <code>%5Bobject+FormData%5D=</code>, also genau das, was pl immer schreibt. console.log liefert <code>URLSearchParams { }</code></p> <p>Hänge ich ein zweites toString an, erscheint das falsche Ergebnis auch in der Konsole.</p> <p>Endergebnis: PL hat sich mit großer Sicherheit beim Abschreiben mit den Klammern vertan.</p> <p>Bis demnächst<br> Matthias</p> <div class="signature">-- <br> Rosen sind rot. </div> Braucht noch wer jQuery? Sun, 29 Jul 18 15:09:49 Z https://forum.selfhtml.org/self/2018/jul/20/braucht-noch-wer-jquery/1727546#m1727546 https://forum.selfhtml.org/self/2018/jul/20/braucht-noch-wer-jquery/1727546#m1727546 <p>hallo</p> <blockquote> <blockquote> <p>Da hilft nicht mal use strict.</p> </blockquote> <p>In dem Fall hilft eine Zeile an den Anfang des Javascript-Teils einzufügen, die ich vergessen habe.</p> <pre><code class="block language-javascript"><span class="token keyword">const</span> ff <span class="token operator">=</span> document<span class="token punctuation">.</span><span class="token function">querySelector</span><span class="token punctuation">(</span><span class="token string">'#ff'</span><span class="token punctuation">)</span><span class="token punctuation">;</span> </code></pre> <p>Zumindest solange das zweite <code>id="ff"</code> erst nachfolgend kommt. Ohne diese Zeile hat das nur geklappt, weil Browser selbständig eine Variable für die id angelegt haben. Die zweite id-Zuweisung hat die erste überschrieben. document.querySelector() hingegen sucht im DOM und endet an der ersten Fundstelle.</p> <p>Dass man clientseitig manipulieren kann, ist halt so in den Browsern. Damit muss man leben. Wenn die Manipulation hingegen unbeabsichtigt durch Dritte - beispielsweise durch XSS - durchgeführt werden konnte, dann hat man irgendwo einen Programierfehler, den man beseitigen muss.</p> </blockquote> <p>Es dringt nur langsam in mein Bewusstsein, wie problematisch ids eigentlich sein können. Dass man da unbewusst überall Objektreferenzen im window scope erzeugt, ist eigentlich nicht wünschenswert, und verstärkt nur mein aus der CSS Praxis stammende Erfahrung, dass IDs möglichst zu vermeiden sind.</p> <p>Ein 'use strict id' wäre wünschenswert, wonach ids nur über Attribut-Methoden oder via Objekt-Eigenschaften zugänglich sind.</p> <div class="signature">-- <br> Neu im Forum! Signaturen kann man ausblenden! </div> Braucht noch wer jQuery? Sun, 29 Jul 18 15:09:47 Z https://forum.selfhtml.org/self/2018/jul/20/braucht-noch-wer-jquery/1727545#m1727545 https://forum.selfhtml.org/self/2018/jul/20/braucht-noch-wer-jquery/1727545#m1727545 <p>Tach!</p> <blockquote> <p>Endergebnis: PL hat sich mit großer Sicherheit beim Abschreiben mit den Klammern vertan.</p> </blockquote> <p>Das ist auch meine Vermutung. Allerdings kann/möchte ich nicht prüfen, was tatsächlich bei alten Browsern rauskommt, die URLSearchParams nicht gemäß der aktuellen Spezifikation implementiert haben. Das kann durchaus auch zum gesehenen Verhalten geführt haben, dass URLSearchParams vom übergebenen Argument einfach toString() aufruft, was ja bei FormData abseits der von Object geerbten Version nicht vorhanden ist.</p> <p>dedlfix.</p> Braucht noch wer jQuery? Sun, 29 Jul 18 15:10:37 Z https://forum.selfhtml.org/self/2018/jul/20/braucht-noch-wer-jquery/1727547#m1727547 https://forum.selfhtml.org/self/2018/jul/20/braucht-noch-wer-jquery/1727547#m1727547 <p>Hallo Robert B.,</p> <blockquote> <p>Fakt ist auch, dass du uns technische Informationen vorenthältst um dein „geht nicht“ nachvollziehen zu können.</p> </blockquote> <p>Wahrscheinlich ein <a href="https://forum.selfhtml.org/m1727542" rel="noopener noreferrer">simpler Klammerfehler</a> beim Abschreiben.</p> <p>Bis demnächst<br> Matthias</p> <div class="signature">-- <br> Rosen sind rot. </div> Braucht noch wer jQuery? Sun, 29 Jul 18 15:32:16 Z https://forum.selfhtml.org/self/2018/jul/20/braucht-noch-wer-jquery/1727554#m1727554 https://forum.selfhtml.org/self/2018/jul/20/braucht-noch-wer-jquery/1727554#m1727554 <p>Hi,</p> <blockquote> <p>Fakt ist auch, dass du uns technische Informationen vorenthältst um dein „geht nicht“ nachvollziehen zu können.</p> </blockquote> <p>Allein schon der CODE ist nicht nachvollziehbar!</p> <p>MfG</p> Braucht noch wer jQuery? Sun, 29 Jul 18 15:18:44 Z https://forum.selfhtml.org/self/2018/jul/20/braucht-noch-wer-jquery/1727550#m1727550 https://forum.selfhtml.org/self/2018/jul/20/braucht-noch-wer-jquery/1727550#m1727550 <p>Tach!</p> <blockquote> <p>Es dringt nur langsam in mein Bewusstsein, wie problematisch ids eigentlich sein können.</p> </blockquote> <p>Nein, problematisch ist lediglich, dass ich die Variable <code>ff</code> nicht initialisiert habe. Wenn ich den Code mit einer IDE geschrieben hätte, wäre ich von dieser auch darauf aufmerksam gemacht worden, <code>ff</code> nicht initialisiert zu haben.</p> <p>dedlfix.</p> FromData toString und Kontextwechsel Sun, 29 Jul 18 15:21:52 Z https://forum.selfhtml.org/self/2018/jul/20/braucht-noch-wer-jquery/1727552#m1727552 https://forum.selfhtml.org/self/2018/jul/20/braucht-noch-wer-jquery/1727552#m1727552 <p>Tach!</p> <blockquote> <blockquote> <blockquote> <p>Wo sind die denn nachzulesen?</p> </blockquote> <p>Im Handbuch, und der Wikipedia. Ich hab nach dem gegebenen Stichwort name mangling gesucht.</p> </blockquote> <p>Schade, dass du uns an den Funden nicht teilhaben lässt.</p> </blockquote> <p>Es ist wirklich nicht schwer, mit dem genannten Stichwort etwas zu finden. Der Wikipedia-Artikel heißt genauso, und wenn man noch <code>python</code> ergänzt, bekommt man auch die Handbuchseite in den Top 5 der Suchergebnisse.</p> <p>dedlfix.</p> FromData toString und Kontextwechsel Sun, 09 Sep 18 18:44:12 Z https://forum.selfhtml.org/self/2018/jul/20/braucht-noch-wer-jquery/1731502#m1731502 https://forum.selfhtml.org/self/2018/jul/20/braucht-noch-wer-jquery/1731502#m1731502 <p>Hallo Robert</p> <blockquote> <p>Der Unterschied zwischen C++ und JavaScript in Bezug auf <code>const</code> ist hier, dass in C++ das gesamte Objekt als konstant angesehen wird, während es in JavaScript anscheinend nur die Verwaltungsinformationen des Objekts sind, wobei Attribute (wie die Länge) offensichtlich nicht zu diesen Informationen gehören.</p> </blockquote> <p>Das ist größtenteils richtig. Konstant ist in JavaScript tatsächlich nur die Bindung zwischen Bezeichner und Wert, wobei der Wert bei Objekten intern – wie dedlfix bereits sagte – bloß ein Verweis auf eine Speicherstelle ist. Solange auf dieselbe Speicherstelle verwiesen wird, ist der Vertrag nicht verletzt. Du musst aber unterscheiden zwischen den Verwaltungsinformationen der Konstanten und denen des Objekts. Das sind zwei voneinander unabhängige Entitäten.</p> <p>Eine Konstante ist aus Implementierungssicht nicht viel Mehr als ein Eintrag in einer Liste, die mit der lexikalischen Umgebung verknüpft ist, in der die Konstante deklariert wurde. Dabei handelt es sich selbst wieder um eine Verwaltungsstruktur, die relevant ist für die Namensauflösung innerhalb des Programms. Die Verwaltungsinformationen für ein Objekt, wie zum Beispiel das Verzeichnis der eigenen Eigenschaften oder der Verweis auf den Prototypen des Objekts, haben damit abgesehen von ein oder zwei Querverweisen nicht viel zu tun. Das wird vielleicht klarer, wenn wir uns ein kleines Beispiel ansehen.</p> <pre><code class="block language-javascript"><span class="token comment">// Global scope</span> <span class="token keyword">const</span> a <span class="token operator">=</span> <span class="token punctuation">{</span><span class="token punctuation">}</span><span class="token punctuation">;</span> <span class="token punctuation">{</span> <span class="token comment">// Local scope of block statement</span> <span class="token keyword">const</span> b <span class="token operator">=</span> a<span class="token punctuation">;</span> <span class="token punctuation">}</span> </code></pre> <p>Was passiert hier? Zunächst mal wird im globalen Scope eine Konstante deklariert. Dabei wird ein leeres Objekt erzeugt und ein Verweis auf das Objekt wird an den Bezeichner der Konstante gebunden. In JavaScript beschrieben haben wir nun stark vereinfacht folgende Struktur für die globale lexikalische Umgebung:</p> <pre><code class="block language-javascript"><span class="token keyword">const</span> OuterEnvironment <span class="token operator">=</span> <span class="token function">Symbol</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token comment">// Information about lexical environment</span> <span class="token keyword">let</span> GlobalEnvironmentRecord <span class="token operator">=</span> <span class="token punctuation">{</span> <span class="token comment">// This is the outermost lexical environment</span> <span class="token punctuation">[</span>OuterEnvironment<span class="token punctuation">]</span><span class="token operator">:</span> <span class="token keyword">null</span><span class="token punctuation">,</span> <span class="token comment">// Binding for constant</span> <span class="token literal-property property">a</span><span class="token operator">:</span> <span class="token punctuation">{</span> <span class="token literal-property property">value</span><span class="token operator">:</span> <span class="token string">'[[object reference]]'</span><span class="token punctuation">,</span> <span class="token literal-property property">immutable</span><span class="token operator">:</span> <span class="token boolean">true</span> <span class="token punctuation">}</span> <span class="token punctuation">}</span><span class="token punctuation">;</span> </code></pre> <p>Es wird an entsprechender Stelle ein Eintrag hinterlegt, der den Namen der Konstanten mit dem Wert verknüpft und ein paar Metainformationen bereitstellt. Nach der Deklaration der Konstanten ist im Quelltext ein Anweisungsblock notiert, der für Konstanten einen eignen Scope repräsentiert. Es wird also für den Block eine neue lexikalische Umgebung erzeugt, wo die Bindung des zuvor erzeugten Objekts an einen lokalen Bezeichner vermerkt wird:</p> <pre><code class="block language-javascript"><span class="token keyword">let</span> EnvironmentRecord <span class="token operator">=</span> <span class="token punctuation">{</span> <span class="token comment">// Reference outer lexical environment</span> <span class="token punctuation">[</span>OuterEnvironment<span class="token punctuation">]</span><span class="token operator">:</span> GlobalEnvironmentRecord<span class="token punctuation">,</span> <span class="token comment">// Binding for constant</span> <span class="token literal-property property">b</span><span class="token operator">:</span> <span class="token punctuation">{</span> <span class="token literal-property property">value</span><span class="token operator">:</span> <span class="token string">'[[object reference]]'</span><span class="token punctuation">,</span> <span class="token literal-property property">immutable</span><span class="token operator">:</span> <span class="token boolean">true</span> <span class="token punctuation">}</span> <span class="token punctuation">}</span><span class="token punctuation">;</span> </code></pre> <p>Da innerhalb des Block Statements keine weiteren Anweisungen notiert sind, können die dazugehörigen Verwaltungsinformationen direkt danach wieder entsorgt oder auf die Seite gelegt werden. Sprich, die in dem Block erzeugte Konstante hört auf zu existieren. Die Konstante, die im globalen Scope deklariert wurde, lebt nach Verlassen des Blocks aber weiter und damit auch alle Verwaltungsinformationen, die mit dem referenzierten Objekt verknüpft sind.</p> <p>Eine Konstante in JavaScript zeichnet sich im Wesentlichen dadurch aus, dass in der Verwaltungsstruktur <em>für die Konstante</em> ein Flag gesetzt wird, das signalisiert, dass kein anderer Wert an den Namen der Konstante gebunden werden darf. Es wird aber <em>kein</em> Flag auf dem Objekt gesetzt, das Änderungen an dem Objekt verhindert. Letzteres ist in JavaScript aber auch möglich, wobei verschiedene Varianten zu unterscheiden sind:</p> <pre><code class="block language-javascript"><span class="token keyword">const</span> object <span class="token operator">=</span> Object<span class="token punctuation">.</span><span class="token function">preventExtensions</span><span class="token punctuation">(</span><span class="token punctuation">{</span><span class="token punctuation">}</span><span class="token punctuation">)</span><span class="token punctuation">;</span> Object<span class="token punctuation">.</span><span class="token function">isExtensible</span><span class="token punctuation">(</span>object<span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token comment">// False</span> <span class="token comment">// Raises type error in strict mode</span> object<span class="token punctuation">.</span>property <span class="token operator">=</span> <span class="token string">'value'</span><span class="token punctuation">;</span> </code></pre> <p>Mit der Methode <code>preventExtensions</code> kann auf dem Objekt ein Flag gesetzt werden das verhindert, dass neue Eigenschaften auf dem Objekt definiert werden. Je nach dem ob das Programm im strikten oder im schlampigen Modus ausgeführt wird, scheitert die Definition einer Eigenschaft entweder still und leise oder es wird ein Typfehler geworfen. Das Flag verhindert aber nicht, dass bereits existierenden Objekteigenschaften neue Werte zugewiesen werden oder das Eigenschaften gelöscht werden.</p> <pre><code class="block language-javascript"><span class="token keyword">const</span> object <span class="token operator">=</span> Object<span class="token punctuation">.</span><span class="token function">seal</span><span class="token punctuation">(</span><span class="token punctuation">{</span> <span class="token literal-property property">property</span><span class="token operator">:</span> <span class="token string">'value'</span> <span class="token punctuation">}</span><span class="token punctuation">)</span><span class="token punctuation">;</span> Object<span class="token punctuation">.</span><span class="token function">isSealed</span><span class="token punctuation">(</span>object<span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token comment">// true</span> <span class="token comment">// Raises type error in strict mode</span> <span class="token keyword">delete</span> object<span class="token punctuation">.</span>property<span class="token punctuation">;</span> </code></pre> <p>Mit der Methode <code>seal</code> kann dafür gesorgt werden, dass die Eigenschaften eines Objekts nicht mehr konfiguriert werden können. Das heißt, es können keine Eigenschaften gelöscht werden und es können nur solchen Eigenschaften neue Werte zugewiesen werden, deren Attribut <code>writable</code> vor der Versiegelung auf <code>true</code> gesetzt war. Auch hier gilt, dass je nach Ausführungsmodus eine unerlaubte Aktion entweder wirkungslos bleibt oder zu einem Typfehler führt.</p> <pre><code class="block language-javascript"><span class="token keyword">const</span> object <span class="token operator">=</span> Object<span class="token punctuation">.</span><span class="token function">freeze</span><span class="token punctuation">(</span><span class="token punctuation">{</span> <span class="token literal-property property">property</span><span class="token operator">:</span> <span class="token string">'value'</span> <span class="token punctuation">}</span><span class="token punctuation">)</span><span class="token punctuation">;</span> Object<span class="token punctuation">.</span><span class="token function">isFrozen</span><span class="token punctuation">(</span>object<span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token comment">// true</span> <span class="token comment">// Raises type error in strict mode</span> object<span class="token punctuation">.</span>property <span class="token operator">=</span> <span class="token string">'other value'</span><span class="token punctuation">;</span> </code></pre> <p>Schließlich können mit der Methode <code>freeze</code> alle Eigenschaften eines Objekts auf <em lang="en">read only</em> gesetzt werden. Zudem können keine Eigenschaften gelöscht oder neu hinzugefügt werden und es kann auch kein neuer Prototyp für das Objekt bestimmt werden. Das Setzen dieses Flags führt aber nicht dazu, dass rekursiv alle Eigenschaften des Objekts abgeklappert werden und das Flag auch auf allen Objekten gesetzt wird, auf die eine Eigenschaft verweist. Objekte als Eigenschaftswert können weiterhin verändert werden. So wie bei den anderen oben beschriebenen Methoden sind die Wirkungen immer auf das Objekt begrenzt, für das die jeweilige Methode aufgerufen wurde.</p> <p>Viele Grüße,</p> <p>Orlok</p> <div class="signature">-- <br> „Dance like it hurts.<br> Make love like you need money.<br> Work when people are watching.“ — Dogbert </div> FromData toString und Kontextwechsel Sun, 29 Jul 18 16:18:15 Z https://forum.selfhtml.org/self/2018/jul/20/braucht-noch-wer-jquery/1727560#m1727560 https://forum.selfhtml.org/self/2018/jul/20/braucht-noch-wer-jquery/1727560#m1727560 <p>Moin,</p> <blockquote> <p>Es ist wirklich nicht schwer, mit dem genannten Stichwort etwas zu finden. Der Wikipedia-Artikel heißt genauso, und wenn man noch <code>python</code> ergänzt, bekommt man auch die Handbuchseite in den Top 5 der Suchergebnisse.</p> </blockquote> <p>Es soll ja Suchmaschinen geben, bei denen die Ergebnisse nutzerabhängig sind … Wenn es jetzt noch so etwas wie Verweise oder Hyperlinks … </p> <p>Mit den genannten Stichworten findet man den <a href="https://de.wikipedia.org/wiki/Python_(Programmiersprache)" rel="nofollow noopener noreferrer">Artikel</a> <a href="https://en.wikipedia.org/wiki/Python_(programming_language)" rel="nofollow noopener noreferrer">tatsächlich</a> <a href="https://en.wikipedia.org/wiki/Python_syntax_and_semantics" rel="nofollow noopener noreferrer">total</a> <a href="https://en.wikipedia.org/wiki/Name_mangling#Python" rel="nofollow noopener noreferrer">einfach</a>. Jetzt muss die Nachwelt wenigstens nicht mehr suchen.</p> <p>Hyperlinke Grüße<br> Robert</p> Braucht noch wer jQuery? Sun, 29 Jul 18 15:36:02 Z https://forum.selfhtml.org/self/2018/jul/20/braucht-noch-wer-jquery/1727555#m1727555 https://forum.selfhtml.org/self/2018/jul/20/braucht-noch-wer-jquery/1727555#m1727555 <p>Hallo pl,</p> <blockquote> <p>Allein schon der CODE ist nicht nachvollziehbar!</p> </blockquote> <p><code class="language-js"><span class="token keyword">const</span> queryString <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token class-name">URLSearchParams</span><span class="token punctuation">(</span><span class="token keyword">new</span> <span class="token class-name">FormData</span><span class="token punctuation">(</span>ff<span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">.</span><span class="token function">toString</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span></code> — dieser?</p> <p>Bis demnächst<br> Matthias</p> <div class="signature">-- <br> Rosen sind rot. </div> Braucht noch wer jQuery? Sun, 29 Jul 18 15:36:11 Z https://forum.selfhtml.org/self/2018/jul/20/braucht-noch-wer-jquery/1727556#m1727556 https://forum.selfhtml.org/self/2018/jul/20/braucht-noch-wer-jquery/1727556#m1727556 <p>Moin pl,</p> <p>du weichst aus anstatt zu antworten.</p> <p>Damit bin ich an dieser Stelle 'raus.</p> <p>Viele Grüße<br> Robert</p> Braucht noch wer jQuery? Sun, 29 Jul 18 15:59:17 Z https://forum.selfhtml.org/self/2018/jul/20/braucht-noch-wer-jquery/1727557#m1727557 https://forum.selfhtml.org/self/2018/jul/20/braucht-noch-wer-jquery/1727557#m1727557 <p>Tach!</p> <blockquote> <blockquote> <p>Fakt ist auch, dass du uns technische Informationen vorenthältst um dein „geht nicht“ nachvollziehen zu können.</p> </blockquote> <p>Allein schon der CODE ist nicht nachvollziehbar!</p> </blockquote> <p>Du bist doch nach eigenen Worten bewandert in OOP und kennst dich mit Overloading aus.</p> <p><a href="https://forum.selfhtml.org/self/2018/jul/20/braucht-noch-wer-jquery/1727418#m1727418" rel="noopener noreferrer">"Das [...] Verhalten bezüglich Funktionsargument ist übrigens ganz typisch für OOP/Overload."</a></p> <p>Du musst nur das richtige Overload vom URLSearchParams-Konstruktor nehmen, dann sollte sich das erklären.</p> <p>Ich hab das anhand der MDN-Dokumentation verstanden, und das obwohl mir <a href="https://forum.selfhtml.org/self/2018/jul/20/braucht-noch-wer-jquery/1727431#m1727431" rel="noopener noreferrer">"eine gehörige Portion Grundwissen und vor Allem Erfahrungen"</a> fehlt. Also so schwer kann das mit dem Nachvollziehen ja nicht sein.</p> <p>Hier nochmal der Link zu meinem Posting, in dem ich das zum Nachvollziehen notwendige beschrieben haben: <a href="https://forum.selfhtml.org/self/2018/jul/20/braucht-noch-wer-jquery/1727377#m1727377" rel="noopener noreferrer">https://forum.selfhtml.org/self/2018/jul/20/braucht-noch-wer-jquery/1727377#m1727377</a>.</p> <p>dedlfix.</p> Braucht noch wer jQuery? Sun, 29 Jul 18 15:59:50 Z https://forum.selfhtml.org/self/2018/jul/20/braucht-noch-wer-jquery/1727558#m1727558 https://forum.selfhtml.org/self/2018/jul/20/braucht-noch-wer-jquery/1727558#m1727558 <p>Hi Robert,</p> <p>was erwartest Du denn bei einer zweckentfemdeten Nutzung von Code? Doch nicht etwa daß es funktioniert!</p> <p>MfG</p> Braucht noch wer jQuery? Sun, 29 Jul 18 17:09:46 Z https://forum.selfhtml.org/self/2018/jul/20/braucht-noch-wer-jquery/1727564#m1727564 https://forum.selfhtml.org/self/2018/jul/20/braucht-noch-wer-jquery/1727564#m1727564 <p>Tach!</p> <blockquote> <p>Du musst nur das richtige Overload vom URLSearchParams-Konstruktor nehmen, dann sollte sich das erklären.</p> </blockquote> <p><code>URLSearchParams</code> funktioniert bei mir nicht so wie beschrieben. Und selbst wenn, ich würde es gar nicht brauchen. Die KV-Paare über encodeURIComponent() auf ein Array zu pushen und den Enctype infolge eines join zu erzeugen, das braucht kein URLSearchParams, das sind Basics.</p> <p>MfG</p> FromData toString und Kontextwechsel Sun, 29 Jul 18 16:31:40 Z https://forum.selfhtml.org/self/2018/jul/20/braucht-noch-wer-jquery/1727561#m1727561 https://forum.selfhtml.org/self/2018/jul/20/braucht-noch-wer-jquery/1727561#m1727561 <p>Tach!</p> <blockquote> <p>Es soll ja Suchmaschinen geben, bei denen die Ergebnisse nutzerabhängig sind …</p> </blockquote> <p>Ja, wenn den Nutzer wirklich unterschiedliche Dinge hilfreich sind, zumindest aus Sicht der Suchmaschine. Die Tankstellenpreise aus Region X interessieren in Region Y üblicherweise weniger, weswegen diese Art Suchergebnisse bei allgemeinen Anfragen üblicherweise lokalisiert sind. Bei "name mangling" sehe ich die Gefahr nicht, das ist ein recht eindeutiger Begriff. Lediglich Übersetzungen in andere Sprachen, aber mit vergleichbarem Inhalt werden da als Unterschiede in den Suchergebnissen zu finden sein.</p> <blockquote> <p>Wenn es jetzt noch so etwas wie Verweise oder Hyperlinks … </p> </blockquote> <p>Ja, ich weiß um deren Existenz und habe sie auch bei der Antwort zur Nachfrage bewusst weggelassen und stattdessen erklärt, wie man zur Antwort auf die Frage kommt. Links anklicken trainiert die Fähigkeit zur Suchanfragenformulierung nicht so richtig. Das war sozusagen ein Schritt zum Angeln lernen statt nur Fisch hinzuwerfen.</p> <p>dedlfix.</p> Braucht noch wer jQuery? Sun, 29 Jul 18 17:16:42 Z https://forum.selfhtml.org/self/2018/jul/20/braucht-noch-wer-jquery/1727565#m1727565 https://forum.selfhtml.org/self/2018/jul/20/braucht-noch-wer-jquery/1727565#m1727565 <p>Tach!</p> <blockquote> <blockquote> <p>Du musst nur das richtige Overload vom URLSearchParams-Konstruktor nehmen, dann sollte sich das erklären.</p> </blockquote> <p><code>URLSearchParams</code> funktioniert bei mir nicht so wie beschrieben.</p> </blockquote> <p>Zum Lesen der Dokumentation muss es nicht funktionieren.</p> <blockquote> <p>Und selbst wenn, ich würde es gar nicht brauchen. Die KV-Paare über encodeURIComponent() auf ein Array zu pushen und den Enctype infolge eines join zu erzeugen, das braucht kein URLSearchParams, das sind Basics.</p> </blockquote> <p>Warum nochmal hast du dann nach einer <a href="https://forum.selfhtml.org/self/2018/jul/20/braucht-noch-wer-jquery/1727279#m1727279" rel="noopener noreferrer">Alternative zu jQuery(form).serialize()</a> gefragt?</p> <p>dedlfix.</p> Braucht noch wer jQuery? Sun, 29 Jul 18 17:55:36 Z https://forum.selfhtml.org/self/2018/jul/20/braucht-noch-wer-jquery/1727566#m1727566 https://forum.selfhtml.org/self/2018/jul/20/braucht-noch-wer-jquery/1727566#m1727566 <p>Tach!</p> <blockquote> <p>Warum nochmal hast du dann nach einer <a href="https://forum.selfhtml.org/self/2018/jul/20/braucht-noch-wer-jquery/1727279#m1727279" rel="noopener noreferrer">Alternative zu jQuery(form).serialize()</a> gefragt?</p> </blockquote> <p>Weil ich wissen wollte was es so an Alternativen gibt, wenn man nur einen Funktionsaufruf haben möchte. Die Antwort kenne ich mittlerweile: Es gibt keine Alternativen.</p> <p>MfG</p> Braucht noch wer jQuery? Sun, 29 Jul 18 18:17:56 Z https://forum.selfhtml.org/self/2018/jul/20/braucht-noch-wer-jquery/1727569#m1727569 https://forum.selfhtml.org/self/2018/jul/20/braucht-noch-wer-jquery/1727569#m1727569 <p>Hallo pl,</p> <blockquote> <p>Weil ich wissen wollte was es so an Alternativen gibt, wenn man nur einen Funktionsaufruf haben möchte.</p> </blockquote> <p>Die Einschränkung hast du im fraglichen Beitrag nicht gemacht. Zudem kannst du dir eine entsprechende Funktion schreiben. Nichts anderes hat jquery auch gemacht.</p> <blockquote> <p>Die Antwort kenne ich mittlerweile: Es gibt keine Alternativen.</p> </blockquote> <p>PL — alle anderen -31 : 71</p> <p>Bis demnächst<br> Matthias</p> <div class="signature">-- <br> Rosen sind rot. </div> Braucht noch wer jQuery? Mon, 30 Jul 18 05:08:42 Z https://forum.selfhtml.org/self/2018/jul/20/braucht-noch-wer-jquery/1727587#m1727587 https://forum.selfhtml.org/self/2018/jul/20/braucht-noch-wer-jquery/1727587#m1727587 <p>Guten Morgen,</p> <blockquote> <p>Die Einschränkung hast du im fraglichen Beitrag nicht gemacht. Zudem kannst du dir eine entsprechende Funktion schreiben. Nichts anderes hat jquery auch gemacht.</p> </blockquote> <p>Genau! jQuery(form).serialize() ist <strong>ein</strong> Funktionsaufruf.</p> <blockquote> <blockquote> <p>Die Antwort kenne ich mittlerweile: Es gibt keine Alternativen.</p> </blockquote> <p>PL — alle anderen -31 : 71</p> </blockquote> <p>Höchstens ersichtlich aber nicht praktikabel. FormData ist veralteter Schrott nur neu verpackt und URLSearchParams ist überflüssig.</p> <p>Ergo bleibt da sowieso nur eine Eigenentwicklung und das hierzu benötigte Wissen habe ich sehr ausführlich vermittelt, einschließlich Empfehlungen hinsichtlich Integrität, Performance, Wartungsfreundlichkeit und Skalierbarkeit mit Blick auf weitere Enctypes (Content-Type) sowie Webservices. Für die Einen sind das Buzzworte, für Andere wilder Müll, für mich jedoch alles Dinge an denen immer wieder meine Freude habe.</p> <p>Schönen Tag noch.</p> Braucht noch wer jQuery? Mon, 30 Jul 18 07:30:01 Z https://forum.selfhtml.org/self/2018/jul/20/braucht-noch-wer-jquery/1727598#m1727598 https://forum.selfhtml.org/self/2018/jul/20/braucht-noch-wer-jquery/1727598#m1727598 <p>Moin klawischnigg,</p> <p>Danke für diesen Link!</p> <blockquote> <p>Pretending To Know JavaScript – The Definitive Guide<br> O RLY?</p> </blockquote> <p>Schönen Montag,<br> Robert</p> FromData toString und Kontextwechsel Sun, 09 Sep 18 21:06:53 Z https://forum.selfhtml.org/self/2018/jul/20/braucht-noch-wer-jquery/1731506#m1731506 https://forum.selfhtml.org/self/2018/jul/20/braucht-noch-wer-jquery/1731506#m1731506 <p>Tach!</p> <blockquote> <p>In Python sind auch Skalare "nur" Referenzen auf den Inhalt. In Python ist alles ein Objekt.</p> </blockquote> <p>Das kann durchaus in bestimmten Sprachen anders gelöst sein als meine allgemeiner Erklärungsversuch es beschreibt. Es ist nur für sich genommen etwas sinnlos, wenn der Speicherbedarf für den Verweis in gleicher Größenordnung ist wie der Wert selbst. Da hat man eine Indirektion drin, die keinen Nutzen bringt, aber Zeit kostet, sie aufzulösen. Allerdings kann da auch eine andere Philosophie oder ein technischer Grund dahinterstecken, die/den ich nicht kenne und die/der das System vorteilhaft werden lässt.</p> <p>dedlfix.</p> FromData toString und Kontextwechsel Sun, 09 Sep 18 21:30:57 Z https://forum.selfhtml.org/self/2018/jul/20/braucht-noch-wer-jquery/1731507#m1731507 https://forum.selfhtml.org/self/2018/jul/20/braucht-noch-wer-jquery/1731507#m1731507 <p>Hallo Klaus,</p> <blockquote> <p>In Python sind auch Skalare "nur" Referenzen auf den Inhalt. In Python ist alles ein Objekt. So habe ich das zumindest mal gelernt.</p> </blockquote> <p>Das stimmt:</p> <pre><code class="block language-python"><span class="token keyword">print</span><span class="token punctuation">(</span><span class="token string">'Hallo'</span><span class="token punctuation">.</span>upper<span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span> <span class="token comment"># → 'HALLO'</span> </code></pre> <p>Viele Grüße<br> Robert</p> FromData toString und Kontextwechsel Mon, 10 Sep 18 08:10:29 Z https://forum.selfhtml.org/self/2018/jul/20/braucht-noch-wer-jquery/1731525#m1731525 https://forum.selfhtml.org/self/2018/jul/20/braucht-noch-wer-jquery/1731525#m1731525 <p>Tach!</p> <p>Achja, den zweiten Teil hatte ich ganz übersehen.</p> <blockquote> <blockquote> <p>In Python ist alles ein Objekt.</p> </blockquote> </blockquote> <p>Das muss aber keine Auswirkungen auf die interne Verarbeitung haben. Alles als Objekt zu sehen, ist vorwiegend eine Philosophie-Frage. Was der Compiler oder das Laufzeitsystem draus macht, steht auf einem anderen Blatt. Neben dem <a href="https://forum.selfhtml.org/self/2018/jul/20/braucht-noch-wer-jquery/1731517#m1731517" rel="noopener noreferrer">bereits erwähnten Javascript</a> kann ich da auch C# ins Felde führen. Simple Typen lassen sich da genauso objektorientiert verarbeiten wie viele der anderen Typen (einige Spezialtypen mal unbeachted gelassen). Besonders zu erwähnen sind da die Struct-Typen. Das sind objektähnliche komplexe Gebilde inklusive der Möglichkeit, Methoden haben zu können, werden aber genauso wie simple Typen als Value-Typ angesehen und dann auch so verarbeitet, sprich: beispielsweise als Kopie übergeben statt als Referenz.</p> <p>dedlfix.</p> FromData toString und Kontextwechsel Mon, 10 Sep 18 07:16:03 Z https://forum.selfhtml.org/self/2018/jul/20/braucht-noch-wer-jquery/1731517#m1731517 https://forum.selfhtml.org/self/2018/jul/20/braucht-noch-wer-jquery/1731517#m1731517 <p>Hallo Robert,</p> <p>das stimmt aber auch in JavaScript:</p> <pre><code class="block language-js">console<span class="token punctuation">.</span><span class="token function">log</span><span class="token punctuation">(</span><span class="token string">'world'</span><span class="token punctuation">.</span><span class="token function">toUpperCase</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token comment">// ⇒ WORLD</span> </code></pre> <p><em>Rolf</em></p> <div class="signature">-- <br> sumpsi - posui - clusi </div>