expertenaustausch > comp.lang.* > comp.lang.javascript

Ulli Horlacher (31.05.2019, 20:04)
Prolog: Ich hab nur rudiementaer Ahnung von Javascript.

Um die upload-Geschwindigkeit zu testen, wuerde ich gerne ein HTTP POST
mit dummy-Daten machen. Also kein echtes file upload, sondern nur
Null-Daten schicken, ohne sie von Platte zu lesen.

"Click here to test your upload speed"
----------

Das soll dann den dummy HTTP POST machen mit XX MB.

Wie wuerde man das angehen?

Bisher lass ich die user eine lokale Datei selektieren um die zu
verschicken. Viele User sind aber mit dieser Aktion ueberfordert :-}
"Was soll ich jetzt auswaehlen?! HILFAE!"
Thomas 'PointedEars' Lahn (31.05.2019, 21:03)
Ulli Horlacher wrote:

> Prolog: Ich hab nur rudiementaer Ahnung von Javascript.


Es gibt kein "Javascript":

<http://PointedEars.de/es-matrix>

> Um die upload-Geschwindigkeit zu testen, wuerde ich gerne ein HTTP POST
> mit dummy-Daten machen. Also kein echtes file upload, sondern nur
> Null-Daten schicken, ohne sie von Platte zu lesen.
> "Click here to test your upload speed"
> ----------
> Das soll dann den dummy HTTP POST machen mit XX MB.
> Wie wuerde man das angehen?


<https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest>

<https://developer.mozilla.org/en-US/docs/Web/API/WindowOrWorkerGlobalScope/fetch>

Allerdings: <https://www.speedtest.net/>
Arno Welzel (01.06.2019, 13:18)
Thomas 'PointedEars' Lahn:

> Ulli Horlacher wrote:
>> Prolog: Ich hab nur rudiementaer Ahnung von Javascript.

> Es gibt kein "Javascript":


Besser: "Die offizielle Schreibweise ist JavaScript."
Thomas 'PointedEars' Lahn (01.06.2019, 14:15)
Arno Welzel wrote:

> Thomas 'PointedEars' Lahn:
>> Ulli Horlacher wrote:
>>> Prolog: Ich hab nur rudiementaer Ahnung von Javascript.

>> Es gibt kein "Javascript":

> Besser: "Die offizielle Schreibweise ist JavaScript."


Nein, das ist nicht besser, denn es sagt etwas anderes (Falsches) aus.
Siehe auch der von Dir nicht zitierte URI.
Arno Welzel (01.06.2019, 14:34)
Thomas 'PointedEars' Lahn:

> Arno Welzel wrote:
> Nein, das ist nicht besser, denn es sagt etwas anderes (Falsches) aus.


Nein, das ist nicht falsch.

> Siehe auch der von Dir nicht zitierte URI.


Da - <http://pointedears.de/scripts/test/es-matrix/> - steht es ja genau
so drin:

"ECMAScript is a stan­dard for object-oriented pro­gram­ming languages.
Superficially, its im­ple­men­ta­tions, like JavaScript (...)".

Oder sollte man auch nicht über die Implementierung JavaScript sprechen,
sondern nur von ECMAScript?
Arno Welzel (01.06.2019, 14:37)
Arno Welzel:

> Thomas 'PointedEars' Lahn:
> Nein, das ist nicht falsch.
> Da - <http://pointedears.de/scripts/test/es-matrix/> - steht es ja genau
> so drin:
> "ECMAScript is a stan­dard for object-oriented pro­gram­ming languages.
> Superficially, its im­ple­men­ta­tions, like JavaScript (...)".
> Oder sollte man auch nicht über die Implementierung JavaScript sprechen,
> sondern nur von ECMAScript?


Ergänzung: Du schreibst unter der o.G. URL auch, Zitat:

In fact, there is no ?javascript?; there is JavaScript.

(Zitat Ende)

Warum ist also falsch, wenn jemand "Javascript" schreibt und man ihn
darauf hinweist, dass der Name der Implementierung offiziell
"JavaScript" heißt?
Ralph Aichinger (01.06.2019, 15:11)
Arno Welzel <usenet> wrote:
> Oder sollte man auch nicht über die Implementierung JavaScript sprechen,
> sondern nur von ECMAScript?


Ich habe tagtäglich mit Frontendlern zu tun, und die sprechen eigentlich
sowohl mir gegenüber als auch untereinander immer von JavaScript, nie
von ECMAScript, wobei zumindest untereinander ihnen klar ist, daß alle
Beteiligten wüßten was ECMAScript ist, und es auch von mir verstanden würde.

Wie ist das bei euch wenn ihr euch mit anderen unterhaltet?

/ralph
Arno Welzel (01.06.2019, 15:44)
Ralph Aichinger:

> Arno Welzel <usenet> wrote:
> Ich habe tagtäglich mit Frontendlern zu tun, und die sprechen eigentlich
> sowohl mir gegenüber als auch untereinander immer von JavaScript, nie
> von ECMAScript, wobei zumindest untereinander ihnen klar ist, daß alle
> Beteiligten wüßten was ECMAScript ist, und es auch von mir verstanden würde.
> Wie ist das bei euch wenn ihr euch mit anderen unterhaltet?


Ich kenne das bislang auch nicht anders.

JFTR: Auf <http://pointedears.de/scripts/test/es-matrix/> meckert
Firefox 67.0 hier mit mehreren Warnungen:

In
<http://pointedears.de/scripts/test/es-matrix/application/scripts/object/object-compat.js>,
Zeile 413:

[anonymous Function].extend(undefined, [object Object]): Parent
constructor is undefined, using Object
jsx_warn@http://pointedears.de/scripts/test/es-matrix/application/scripts/object/object-compat.js:450:14
Function.prototype.extend@http://pointedears.de/scripts/test/es-matrix/application/scripts/object/object-compat.js:2523:14
@http://pointedears.de/scripts/builder?src=test/es-matrix/application/scripts/es,engine,dom/xpath,test/es-matrix/application/scripts/debug,http,string/hyphenation,dom,dom/css,dom/events,dom/forms,dom/widgets:7945:22

In
<http://pointedears.de/scripts/builder?src=test/es-matrix/application/scripts/es,engine,dom/xpath,test/es-matrix/application/scripts/debug,http,string/hyphenation,dom,dom/css,dom/events,dom/forms,dom/widgets>,
Zeile 5205:

Synchrone XMLHttpRequests am Haupt-Thread sollte nicht mehr verwendet
werden, weil es nachteilige Effekte für das Erlebnis der Endbenutzer
hat. Für weitere Hilfe siehe
Thomas 'PointedEars' Lahn (01.06.2019, 16:07)
Ralph Aichinger wrote:

> Arno Welzel <usenet> wrote:
>> Oder sollte man auch nicht über die Implementierung JavaScript sprechen,
>> sondern nur von ECMAScript?


Der Punkt ist (zum zigsten Mal): Es gibt nicht nur *eine* verbreitete
Implementierung von ECMAScript, und die Implementierungen unterscheiden
sich voneinander (heute weniger als früher, aber trotzdem).

> Ich habe tagtäglich mit Frontendlern zu tun,


*wink*

> und die sprechen eigentlich sowohl mir gegenüber als auch untereinander
> immer von JavaScript, nie von ECMAScript, wobei zumindest untereinander
> ihnen klar ist, daß alle Beteiligten wüßten was ECMAScript ist, und es
> auch von mir verstanden würde.


Ja, *als* *Kurzform*.

> Wie ist das bei euch wenn ihr euch mit anderen unterhaltet?


Das kommt darauf an, wer der/die andere ist.

Erschwerend kommt heutzutage hinzu, wie ich ja auch auf meiner Website und
schon in meiner Bachelorarbeit von 2011/2012 schreibe, dass es nicht nicht
nur eine ECMAScript-Implementierung gibt, sondern auch nicht mehr nur eine
Implementierung, die ganz offiziell ?JavaScript? im Namen hat. (Dass
Microsoft JScript nun in der MSDN Library ?JavaScript for Internet Explorer?
genannt wird, ist IMHO reines Marketing; aber zum Beispiel die Bezeichnung
?(Google) V8 JavaScript? hat durchaus ihre Berechtigung.)

Das sind eben *verschiedene* Sprachebenen und Situationen.

Hierzugruppe und in der Öffentlichkeit überhaupt muss man davon ausgehen
(und im konkreten Fall war es ja so), dass Anfänger mitlesen. Daher war
der Hinweis auf die irreführend-falsche Terminologie angezeigt.

Das hab? ich (Arno Welzel) auch schon /ad nauseam/ erklärt.
Soifz. [psf 10.1]
Thomas 'PointedEars' Lahn (01.06.2019, 18:43)
Arno Welzel behauptete denselben Stuss zum zigsten Mal:

> Thomas 'PointedEars' Lahn:
> Nein, das ist nicht falsch.


Doch, das IST falsch, denn es gibt keine Programmiersprachen namens
?javascript?, und mit ?javascript? ist typischerweise nicht nur
Netscape/Mozilla JavaScript oder überhaupt Sprachen, die ?JavaScript? im
Namen haben gemeint. Das ist ja das Problem: PLANLOSERWEISE wird von
Wannabes alles in einen Topf geworfen!

>> Siehe auch der von Dir nicht zitierte URI.

> Da - <http://pointedears.de/scripts/test/es-matrix/> - steht es ja genau
> so drin:


Nein, das tut es nicht! Ich werde ja wohl noch wissen, was ich geschrieben
und wie ich es gemeint habe!

> "ECMAScript is a stan­dard for object-oriented pro­gram­ming languages.
> Superficially, its im­ple­men­ta­tions, like JavaScript (...)".

^^^^^^^^^^^^^
?[?] and JSCript, [?]?

> Oder sollte man auch nicht über die Implementierung JavaScript sprechen,
> sondern nur von ECMAScript?


Bist Du senil? Wie oft muss ich es Dir jetzt noch erklären?

?like? ist in diesem Zusammenhang die englische Wendung für ?wie zum
Beispiel?. Übersetzt also, so geschrieben dass es auch der letzte Idiot
merkt:

?ECMAScript ist ein Standard für objektorientierte Pro­gram­miersprachen.
OBERFLÄCHLICH BETRACHTET sind seine ImplementierungEN, WIE ZUM BEISPIEL
JavaScript UND JScript [?]?

?[?] sehr ÄHNLICH. Sie werden daher oft in VEREINFACHENDER Weise
diskutiert. Aber HÄLT DIESER ANSATZ EINER GENAUEREN ÜBERPRÜFUNG STAND??.

Da steht auch ?implementationS?, ?ImplementierungEN?. Plural. MEHRzahl.
Und mit ?JavaScript? ist Netscape/Mozilla JavaScript gemeint (im Unterschied
zu MICROSOFT JScript).

Im übrigen ist das meine Übersetzung ins Englische der Zusammenfassung
(Abstract) *meiner* Bachelorarbeit von 2011/2012 (Fussnote 1). Diese habe
ich auf Deutsch geschrieben.

Wer lesen kann, ist hier klar im Vorteil!

kopfschüttelnd,
Arno Welzel (01.06.2019, 20:17)
Thomas 'PointedEars' Lahn:

> Ralph Aichinger wrote:
> Der Punkt ist (zum zigsten Mal): Es gibt nicht nur *eine* verbreitete
> Implementierung von ECMAScript, und die Implementierungen unterscheiden
> sich voneinander (heute weniger als früher, aber trotzdem).


Habe ich das irgendwo bezweifelt?

Es ist in erster Näherung unwahrscheinlich, dass die Frage des OP zu
ECMAScript allgemein war, sondern zu einer Implementierung in Browsern -
und die wird von wenigen Ausnahmen abgesehen nun mal JavaScript genannt.

[...]
> Hierzugruppe und in der Öffentlichkeit überhaupt muss man davon ausgehen
> (und im konkreten Fall war es ja so), dass Anfänger mitlesen. Daher war
> der Hinweis auf die irreführend-falsche Terminologie angezeigt.
> Das hab? ich (Arno Welzel) auch schon /ad nauseam/ erklärt.
> Soifz. [psf 10.1]


Das glaube ich Dir nicht. Du wirst auch in Zukunft noch dutzende oder
hunderte Male das selbe sagen und nicht akzeptieren, dass jeder außer
Dir kein Problem damit hat, von "JavaScript" zu sprechen und auch sehr
gut zu verstehen, was damit gemeint ist.
Arno Welzel (01.06.2019, 20:19)
Thomas 'PointedEars' Lahn:

> Arno Welzel behauptete denselben Stuss zum zigsten Mal:
> Doch, das IST falsch, denn es gibt keine Programmiersprachen namens
> ?javascript?, und mit ?javascript? ist typischerweise nicht nur


Wo habe ich von "javascript" geschrieben?

Ich sagte "Die offizielle Schreibweise ist JavaScript."

> Netscape/Mozilla JavaScript oder überhaupt Sprachen, die ?JavaScript? im
> Namen haben gemeint. Das ist ja das Problem: PLANLOSERWEISE wird von
> Wannabes alles in einen Topf geworfen!


Dein Problem.

>>> Siehe auch der von Dir nicht zitierte URI.

>> Da - <http://pointedears.de/scripts/test/es-matrix/> - steht es ja genau
>> so drin:

> Nein, das tut es nicht! Ich werde ja wohl noch wissen, was ich geschrieben
> und wie ich es gemeint habe!


Du hast "JavaScript" als Implementierung erwähnt:

> ^^^^^^^^^^^^^
> ?[?] and JSCript, [?]?
> Bist Du senil? Wie oft muss ich es Dir jetzt noch erklären?


Also was jetzt? Soll man nur noch ECMAScript schreiben oder nicht?
Stefan Ram (01.06.2019, 20:54)
Ulli Horlacher <framstag> writes:
>Das soll dann den dummy HTTP POST machen mit XX MB.
>Wie wuerde man das angehen?


Ich habe keine Zeit für einen vollständigen Test,
daher hier nur eine Ideenskizze mit Pseudocode!

Eine POST-Abfrage sollte ungefähr so gehen
(ungetesteter Pseudocode):

{ const form = document.createElement( "form" );
form.setAttribute( "method", "post" );
form.setAttribute( "action", "http://www.example.com.invalid/" );
const field = document.createElement( "input" );
field.setAttribute( "type", "hidden" );
field.setAttribute( "name", "data" );
field.setAttribute( "value", "HAVE A HUGE TEXT HERE" );
form.appendChild( field );
document.body.appendChild( form );
form.submit(); }

Ich weiß nicht, wie die Zeitmessung dann genau gehen soll,
aber habe erst einmal nur beantwortet, wie ungefähr man eine
POST-Abfrage schicken könnte. Vielleicht weißt Du schon selber,
wie Du dann die Zeit messen kannst.
Arno Welzel (01.06.2019, 22:45)
Arno Welzel:

> Thomas 'PointedEars' Lahn:
>> Arno Welzel behauptete denselben Stuss zum zigsten Mal: [...]
>>> Oder sollte man auch nicht über die Implementierung JavaScript sprechen,
>>> sondern nur von ECMAScript?

>> Bist Du senil? Wie oft muss ich es Dir jetzt noch erklären?

> Also was jetzt? Soll man nur noch ECMAScript schreiben oder nicht?


Ergänzend: <https://developer.mozilla.org/de/docs/Web/JavaScript>

Also - wie soll man es nennen, wenn man eine Frage zur Umsetzung eines
Scripts hat, was innerhalb eines Browser wie Firefox, Vivaldi oder
Chrome ausgeführt wird? Die jeweilige Implementierung des Browsers, die
auch "JavaScript" heißen kann oder ausschließlich "ECMAScript"?
Thomas 'PointedEars' Lahn (02.06.2019, 04:06)
Arno Welzel wrote:

> Thomas 'PointedEars' Lahn:
> Wo habe ich von "javascript" geschrieben?


Der OP hat es aber, nur eben mit ?Javascript? (sic). Das ist nur leicht
anders falsch.

Zugrunde liegt dieselbe falsche Vorstellung: Es gäbe *eine*
Programmiersprache namens ?Javascript?, die überall gleich sei (oder
"Dialekte" habe und sich nur *deshalb* in unterschiedlichen Umgebungen
voneinander unterschiede).

Widrigenfalls enthält diese Phantomsprache dann auch noch alle Host-Objekte,
d. h. konzeptuell fehlt auch noch das Verständnis des Unterschieds zwischen
eingebauten, nativen und Host-Objekten ? da kommen dann meist Dinge wie
?window?, ?document? und ?getElementById?, die NICHT Teil *irgendeiner*
Programmiersprache sind, aber deren angebliches "Nichtfunktionieren" dann
eben dieser Phantomsprache angelastet werden. Hab? ich alles schon gesehen.
Nervig.

Im aktuellen Fall ist dieses Missverständnis nicht (grösstenteils) dem OP
anzulasten; wenn man zu dem Thema oberflächlich oder gar nicht recherchiert,
findet man einfach haufenweise Unsinn von Wannabes.

Leider inzwischen auch in Büchern: Viele, die nur halb verstanden haben, was
sie tun, glauben, die Materie vollständig durchdrungen zu haben und sich mit
dem Schreiben eines Buchs einen Namen/Geld machen (oder, wenn man Altruismus
unterstellt, anderen etwas erklären und ihnen damit helfen) zu können.

Sofort fallen mir da David Flanagan (?javascript: The Definitive Guide?),
John Resig (jQuery und diverse Bücher mit ?Ninja? und ?Professional? im
Titel ? klare Warnsignale) und Douglas Crockford (?javascript: The Good
Parts?) ein. Flanagan steckt irgendwie seit Jahrzehnten in einer Zeitkapsel
fest und hat nicht verstanden, dass es überhaupt nicht *nur* Netscape
JavaScript gibt (statt neue Editionen des immer gleichen falschen Buchs
herauszubringen, sollte er endlich mal sauber recherchieren und ein neues
Buch schreiben); Resig hatte zumindest bei der letzten Überprüfung den
Unterschied zwischen den Implementierungen nicht verstanden ? obwohl ihm
offenbar klar ist, dass es verschiedene Umgebungen gibt; und Crockford hat
offenbar bis heute mindestens nicht den Unterschied zwischen Sprache und DOM
verstanden (also auch irgendwie ein Zeitkapsel-Syndrom ? damals gab es den
Unterschied so noch nicht). Im deutschsprachigen Usenet ist Stefan Ram so
ein offenbar hoffnungsloser Fall, der (mangels Kritik*fähigkeit*) nicht
versteht, dass er sich mit Mozilla JavaScript nur noch mit einer
Randerscheinung beschäftigt; das wahre Leben spielt sich heute vor allem ?
bei > 60 % weltweitem Marktanteil für Chrome [insgesamt, und Desktop und
Mobile separat¹] vs. < 6 % für Firefox ? in V8 JavaScript ab. Die armen
Volkshochschüler; sie werden feststellen müssen, dass sie so gut wie nichts
von dem bei ihm "Gelernten" ? falls man mit solchen Zeichenwüsten überhaupt
etwas lernen kann ? IRL später gebrauchen können.)

[Nein, ich habe kein Buch geschrieben und werde auch keins schreiben,
jedenfalls jetzt nicht ? habe derzeit anderes, Interessanteres zu tun.
(Eigentlich auch Wichtigeres als dieses Posting, zum Beispiel
schlafen ? aber es musste wohl mal raus.)]

________
¹ <http://gs.statcounter.com/browser-market-share>

> Ich sagte "Die offizielle Schreibweise ist JavaScript."


Und das ist *falsch*, denn es impliziert *in diesem Kontext*, dass es *eine*
(1) Programmiersprache gäbe, die ?javascript? genannt wird, deren offizielle
Schreibweise aber ?JavaScript? ist.

Eine solche Sprache gibt es aber nicht, denn die Leute, die ?javascript?
schreiben, haben gar keine Ahnung, was sie damit meinen. Sie haben
ungesundes Halbwissen: sie wissen nicht, was sie nicht wissen. Ihnen ist
nicht klar oder sie wollen aufgrund Bequemlichkeit nicht akzeptieren, dass
das, was sie ?javascript? (oder ?Javascript?) nennen, ein Konglomerat aus
sich *voneinander unterscheidenden* Implementierungen von ECMAScript ist
(manchmal sogar standardwidrige), und dass das Ganze mit Host-Objekten nur
insofern zu tun hat, als dass die jeweilige ECMAScript-Implementierung den
Zugriff auf diese Objekte ermöglicht.

>> Netscape/Mozilla JavaScript oder überhaupt Sprachen, die ?JavaScript? im
>> Namen haben gemeint. Das ist ja das Problem: PLANLOSERWEISE wird von
>> Wannabes alles in einen Topf geworfen!

> Dein Problem.


Nein, es ist Deins, denn Du begehst genau diesen Fehler.
Und zwar leider *immer* *wieder*. Siehe oben.

>>>> Siehe auch der von Dir nicht zitierte URI.
>>> Da - <http://pointedears.de/scripts/test/es-matrix/> - steht es ja genau
>>> so drin:

>> Nein, das tut es nicht! Ich werde ja wohl noch wissen, was ich
>> geschrieben und wie ich es gemeint habe!

> Du hast "JavaScript" als Implementierung erwähnt:


Und ich habe jetzt zum wiederholten Mal geschrieben, dass das eine
ZUSAMMENFASSUNG meiner Bachelorarbeit ist, und ich an dieser Stelle
NETSCAPE (heute: Mozilla) JavaScript meine, weil ich es zusammen
mit einem weiteren BEISPIEL, MICROSOFT JScript, nenne.

Dies deswegen, weil Netscape/Mozilla JavaScript und Microsoft JScript lange
Zeit (und 2012, v.a. über die entsprechenden Web-Browser) die beiden
verbreitetsten Implementierungen von ECMAScript waren², und die Grundlagen
für die erste Edition der ECMAScript Language Specification (niemand ? nicht
Netscape und nicht Microsoft ? wollte etwas aufgeben ? Netscape nicht ihr
Original und Microsoft nicht ihre angepasste Kopie ?, man wollte aber auch
einen Industriestandard, damit es kein komplettes Chaos im Web gibt; also
standardisierte man den kleinsten gemeinsamen Nenner).

Steht alles in meiner Bachelorarbeit auf Deutsch. Lies sie einfach
(endlich)!

________
² <http://gs.statcounter.com/browser-market-share#monthly-200901-201202>

> Also was jetzt? Soll man nur noch ECMAScript schreiben oder nicht?


Nochmal für Einzeller (siehe BAfH³):

Man soll ECMAScript schreiben, wenn man ECMAScript meint. Also sich zum
Beispiel auf Features, die in einer Edition der ECMAScript Language
Specification definiert sind, bezieht oder die nach bestem Wissen in allen
Sprachen, die sich Implementierungen von ECMAScript nennen, gleich sind.

Man *kann* heutzutage auch *nur* ?JavaScript? schreiben, wenn man damit
exakt alle Sprachen meint, die ?JavaScript? im Namen haben; dann muss man
das aber auch klar schreiben. Ich zum Beispiel habe gelegentlich den
Begriff ?JavaScript*s*? für das verwendet, was (nach meiner Analyse, die man
eben z. B. in der ?ECMAScript Support Matrix? aufgelistet findet)
Netscape/Mozilla JavaScript, Google V8 JavaScript, Apple JavaScriptCore und
KDE JavaScript gemeinsam haben. (Das ist vermutlich auch nicht ganz
korrekt, dies sind oder waren aber die verbreitetsten Implementierungen im
Web-Bereich, um den es meist und in *.comp.lang.javascript ohne weitere
Angaben geht.)

In allen anderen Fällen sollte man genau schreiben, welche
Implementierung(en) (und damit auch welche Laufzeitumgebung[en]) man meint.

Siehe auch den Abschnitt ?The same, but not the same? (?Gleich und doch
nicht gleich?) der ?ECMAScript Support Matrix?.

Wenn das jetzt *immer noch nicht* klar ist, lies einfach *genau* hin,
*beachte den Kontext*, und schreib es so, wie ich es *in dem jeweiligen
Kontext* geschrieben habe. Mir ist kein Fall bekannt, wo ich von obiger
Regel abgewichen bin.

______
³ <https://de.wikipedia.org/wiki/Bastard_Assistant_from_Hell>
<http://www.bas-services.de/basvs/BAND5.html>