Verschiedene JavaScript-Engines
1337iceskater
- javascript
0 suit0 1337iceskater0 JürgenB
6 molily0 ChrisB
Hallo Leute,
ich habe zur Zeit die Aufgabe etwas über die unterschiedlichen JavaScript-Engines in den unterschiedlichen Browsern herauszufinden.
Über die SuFu bin ich leider nicht schlau geworden. Gibt es überhaupt unterschiede in den Engines? Hat jemand einen Hinweis, wo ich nach solchen Informationen suchen könnte?
Mich würde halt brennend interessieren, wie denn überhaupt die ganzen Unterschiede technisch zu begründen sind (warum funktioniert im Firefox ein JavaScript, dass im IE nicht funktioniert?)
Ich wäre über jede Hilfe dankbar!
LG
Über die SuFu bin ich leider nicht schlau geworden.
"[BROWSERNAME] JavaScript Engine" in der Suchmaschine deiner Wahl fördert einiges zu Tage. Ich wage zu behaupten, dass du nicht gesucht hast oder ein extrem schlechter Sucher bist.
Gibt es überhaupt unterschiede in den Engines?
Opera -> Carakan
Chrome -> V8
Internet Explorer -> Chakra
Firefox -> SpiderMonkey
WebKit -> SquirrelFish
Nebst denen gibts noch ein paar andere, Rhino z.B, die nicht irgendwelchen Major-Browsern schlafen.
Hat jemand einen Hinweis, wo ich nach solchen Informationen suchen könnte?
Beginne bei Punkt 1.
Mich würde halt brennend interessieren, wie denn überhaupt die ganzen Unterschiede technisch zu begründen sind (warum funktioniert im Firefox ein JavaScript, dass im IE nicht funktioniert?)
Warum funktioniert auf meinem Android-Telefon eine Anwendung, die sich auf einer HGZ-Kaffee-Maschine nicht installieren lässt? Ist doch beides Linux ...
Über die SuFu bin ich leider nicht schlau geworden.
"[BROWSERNAME] JavaScript Engine" in der Suchmaschine deiner Wahl fördert einiges zu Tage. Ich wage zu behaupten, dass du nicht gesucht hast oder ein extrem schlechter Sucher bist.
Gibt es überhaupt unterschiede in den Engines?
Opera -> Carakan
Chrome -> V8
Internet Explorer -> Chakra
Firefox -> SpiderMonkey
WebKit -> SquirrelFishNebst denen gibts noch ein paar andere, Rhino z.B, die nicht irgendwelchen Major-Browsern schlafen.
Hat jemand einen Hinweis, wo ich nach solchen Informationen suchen könnte?
Beginne bei Punkt 1.
Mich würde halt brennend interessieren, wie denn überhaupt die ganzen Unterschiede technisch zu begründen sind (warum funktioniert im Firefox ein JavaScript, dass im IE nicht funktioniert?)
Warum funktioniert auf meinem Android-Telefon eine Anwendung, die sich auf einer HGZ-Kaffee-Maschine nicht installieren lässt? Ist doch beides Linux ...
Danke für die schnelle Hilfe. Das sollte reichen.
Danke übrigens auch für die unglaublich professionellen Hinweise auf diverse Suchmaschinen!
Gesucht habe ich, wenn man jedoch nicht weiß wonach, gestaltet sich das meist als schwierig (ich scheine ein schlechter Sucher zu sein)
Trotzdem nochmal danke!
Hallo suit,
Warum funktioniert auf meinem Android-Telefon eine Anwendung, die sich auf einer HGZ-Kaffee-Maschine nicht installieren lässt? Ist doch beides Linux ...
da bringst du mich auf eine Idee: Need for speed oder GTA im GTI instalieren ... :)
Gruß, Jürgen
Hallo,
Mich würde halt brennend interessieren, wie denn überhaupt die ganzen Unterschiede technisch zu begründen sind (warum funktioniert im Firefox ein JavaScript, dass im IE nicht funktioniert?)
Das hat mit der Engine höchstwahrscheinlich nichts zu tun. Die Engine ist in erster Linie ein ECMAScript-Interpreter. Der Interpreter macht nichts anders, als ECMAScript-Code in Maschinencode zu kompilieren und diesen zu optimieren.
Auf dieser Ebene gibt es zwar einige Unterschiede, aber im Prinzip sind alle Engines ECMAScript-3-kompatibel. Aktuell ist ECMAScript 5.1. In ES5 sind einige Objektmethoden neu hinzugekommen und es gibt einen Strict Mode, aber die Browser haben das größtenteils schon implementiert.
ECMAScript ist die Sprache, die JavaScript zugrunde liegt. Sie definiert nur die sogenannten Kernobjekte (Object, Function, Array, String, Boolean, Number, Date, RegExp, Math usw.). Diese sind unabhängig von der »Implementation«. Als solche wird die konkrete Anwendung von ECMAScript bezeichnet. Denn mit ECMAScript alleine kann man wenig machen, es gibt z.B. keine Eingabe- oder Ausgabemöglichkeiten.
Interessant wird ES zusammen mit sogenannten Host-Objekten. Das sind die Objekte, die von der konkrete Anwendung bereitgestellt werden. Im Browser sind das z.B. window, document, location, das DOM und viele andere APIs.
Wenn sich in der Vergangenheit Browserunterschiede ergeben haben, dann zum großen Teil bei diesen Host-Objekten. Die Host-Objekte wiederum haben mit dem ECMAScript-Standard nichts zu tun und sind irgendwo anders definiert: Z.B. im W3C DOM Core, DOM HTML, früher in Netscape JavaScript und heute in HTML5 sowie in weiteren gesonderten Spezifikationen. Oder sie sind proprietär und daher nur bei einem Browserhersteller dokumentiert.
Warum diese Host-Objekte in den Browsern unterschiedlich umgesetzt sind, hat verschiedene historische Gründe. Erst in den letzten Jahren gab es Anstrengungen, alle vorhandenen Host-Objekte zu standardisieren, selbst die bisher proprietären. Das macht zum großen Teil die HTML5-Spezifikation. Und erst in den letzten Jahren haben sich alle Browserhersteller darauf verschrieben, Webstandards lückenlos umzusetzen, sodass erst neuere Internet Explorer wie Version 9 zehn Jahre alte Webstandards wie DOM 2 Events umsetzen.
Zudem werden auch viele neue JavaScript-APIs erfunden und die Browserhersteller sind wie immer unterschiedlicher Meinung darüber, welche sie implementieren sollten.
Übersicht über HTML5-Spezifikationen
Die W3C-Arbeitsgruppen, die an JavaScript-APIs arbeiten:
http://www.w3.org/html/wg/
http://www.w3.org/2008/webapps/wiki/PubStatus
http://www.w3.org/2009/dap/
Mathias
Hi,
ich habe zur Zeit die Aufgabe etwas über die unterschiedlichen JavaScript-Engines in den unterschiedlichen Browsern herauszufinden.
Über die SuFu bin ich leider nicht schlau geworden. Gibt es überhaupt unterschiede in den Engines? Hat jemand einen Hinweis, wo ich nach solchen Informationen suchen könnte?
Wikifuckingpedia ...?
MfG ChrisB