Javascript Zwang bei HTML5?



  • HTML 5 ist also ein ständig in Bewegung befindlicher Standard und damit ich HTML 5 Featuers nutzen kann, muss ich erstmal mit Javascript testen, ob der Browser dieses Feature, welches ich nutzen will, beherrscht.
    Verstehe ich das so richtig?

    Zumindest kann man das so dieser Webseite entnehmen:

    http://diveintohtml5.info/detect.html

    Wenn das so ist, dann ist dies ja richtig übel, weil man damit praktisch nirgends mehr eine moderne Webseite benutzen kann, ohne Javascript zu erlauben.

    Was haben sich die macher von HTML dabei nur gedacht?


  • Mod

    Nein, komplett falsch.

    Du brauchst Feature Detection wenn du Features Detecten willst. Wenn du keine Features detecten willst, dann brauchst du sie nicht.



  • Tja, aber im praktischen Einsatz braucht man doch die Feature Detection, wenn die Seite auch auf alten Browsern noch gut aussehen oder funktionieren soll, wenn der Browser die HTML 5 Features nicht beherrscht.

    Wenn der Nutzer z.B. ein Video anschauen können soll, dann muss ich testen, ob der Browser das video Tag kennt, kennt er es nicht, dann muss ich das Video z.B. via Flash anbieten.

    Bei den ganzen neuen Form Tags gilt das erst recht, wenn die Seite benutzbar bleiben soll, dann müssen die neuen Form Tags funktionieren, also muss ich den Browser darauf prüfen ob er das kann, kann er es nicht, dann muss ich das gleiche über die alten Form tag Möglichkeiten anbieten.

    Damit ist man praktisch dazu gezwungen immer JS einzusetzen.

    Und die Sache wird ja gerade dadurch schlimmer, dass es bei HTML 5 ja eigentlich keine feste Version gibt, sondern immer etwas dazukommen kann.
    HTML 5 ist nicht festgegossen und weil ständig was neues dazukommen kann, muss ich immer JS einsetzen um die Browser darauf zu testen.


  • Mod

    Wieso willst du Feature Detection haben? Das ist in Ausnahmesituationen sinnvoll, aber meistens braucht man es nicht.

    Videos verlangen Feature Detection, ja. Aber das ist ein Ausnahmefall.

    Du hast ein komplett falches Verständnis wie HTML funktioniert.



  • Shade Of Mine schrieb:

    Du hast ein komplett falches Verständnis wie HTML funktioniert.

    Schön, Danke für die Unterstellung, dann erkläre mal wie HTML funktioniert, vielleicht kann ich etwas dazulernen.

    Das mit den Form Tags erkläre dann bitte ebenfalls.


  • Mod

    Javascriptzwang schrieb:

    Shade Of Mine schrieb:

    Du hast ein komplett falches Verständnis wie HTML funktioniert.

    Schön, Danke für die Unterstellung, dann erkläre mal wie HTML funktioniert, vielleicht kann ich etwas dazulernen.

    Das mit den Form Tags erkläre dann bitte ebenfalls.

    Du willst nicht lernen, das ist offensichtlich.

    Aber bitte.
    HTML5 wird konstant weiter entwickelt und die Browser werden konstant besser. Es kommen konstant neue Features hinzu. Wenn du nun ein bleeding edge feature verwenden willst, dann setze einfach einen bleeding edge Browser voraus. Fertig. Keine Hexerei. Wenn der User einen alten Browser hat, dann funktioniert die Seite eben nicht.

    Wenn man das nicht will, gibt es ein paar Ansätze. zB sind viele HTML5 features sowieso abwärtskompatibel. zB bei einer Form kann man client side validation machen. Wenn der Browser es kann super, wenn nicht, dann validiert eh der Server sowieso auch. Also null Aufwand um hier alte Browser zu unterstützen. User mit einem alten Browser hab gewisse Features nicht, können die Seite aber ohne Probleme benutzen.

    Wenn man nun ein Feature unbedingt braucht aber damit rechnet dass einige Leute zu alte Browser dafür verwenden, dann nimmt man einfach ein Polyfill. Das ist eine JS Datei die die Funktionalität für ältere Browser bereit stellt. Bei neuen tut sie nichts.

    Und dann gibt es noch Feature Detection mit der man erkennen kann ob der Browser gewisse Features unterstützt (das kann man zB mit Polyfills kombinieren wenn man will). So kann man zB eine high end variante für moderne Browser und eine altbackene Seite für alte Browser erstellen und dynamisch dem Besucher die passende Seite schicken.

    Aber das sind alles Spezialfälle. Die HTML5 macher sind cleverer als du. Die haben sich schon etwas dabei gedacht. Du kannst eine moderne Seite ohne Probleme auch in älteren Browsern ansehen ohne dass es Probleme macht. Wirklich kompliziert wird es nur wenn du dir einbildest Steinzeit Browser wie den IE 6 oder so unterstützen zu müssen. Aber wir haben aktuell zB FireFox 27 - der ist der aktuelle FireFox. Aber mit Ausnahme von Spezialfällen wirst du keinen Unterschied zu einem FireFox 20 merken.

    Sofern man also halbwegs aktuelle Browser targetet, ist das alles kein Problem.

    JavaScript zu verwenden ist dann natürlich aber aus anderen Gründen sehr praktisch.

    Und einfach nur so fyi: JavaScript zu deaktivieren ist dumm.



  • http://www.w3schools.com/html/html5_intro.asp schrieb:

    Some rules for HTML5 were established:

    • New features should be based on HTML, CSS, DOM, and JavaScript
    • The need for external plugins (like Flash) should be reduced
    • Error handling should be easier than in previous versions
    • Scripting has to be replaced by more markup
    • HTML5 should be device-independent
    • The development process should be visible to the public

    Wogegen haben Sie den verstoßen?



  • Shade Of Mine schrieb:

    Wenn du nun ein bleeding edge feature verwenden willst, dann setze einfach einen bleeding edge Browser voraus. Fertig. Keine Hexerei. Wenn der User einen alten Browser hat, dann funktioniert die Seite eben nicht.

    Aha, so einfach machst du es dir.

    Wenn man das nicht will, gibt es ein paar Ansätze. zB sind viele HTML5 features sowieso abwärtskompatibel. zB bei einer Form kann man client side validation machen.

    Also nimmst du Javascript um das zu validieren, sehr schön. Das wiedergibt genau das, was ich geschrieben habe.

    Wenn man nun ein Feature unbedingt braucht aber damit rechnet dass einige Leute zu alte Browser dafür verwenden, dann nimmt man einfach ein Polyfill. Das ist eine JS Datei die die Funktionalität für ältere Browser bereit stellt. Bei neuen tut sie nichts.

    Also doch JS.

    Aber das sind alles Spezialfälle. Die HTML5 macher sind cleverer als du. Die haben sich schon etwas dabei gedacht. Du kannst eine moderne Seite ohne Probleme auch in älteren Browsern ansehen ohne dass es Probleme macht.

    Gut, dann lass uns mal das range Form Tag in die Seite einbauen und sehen, wie gut ein alter Browser damit klar kommt, so ganz ohne JS.

    Wirklich kompliziert wird es nur wenn du dir einbildest Steinzeit Browser wie den IE 6 oder so unterstützen zu müssen.

    Siehst du, also doch JS.
    Aber der IE ist ja noch nicht mal das Problem, denkt man darüber nach das WinXP bald sowieso eingestellt wird.
    Sondern die Probleme existieren bei alten Embedded Geräten die einen Browser an Bord haben. Z.B. ein altes Tablet, eine alte Konsole oder ein altes Smartphone.

    Und einfach nur so fyi: JavaScript zu deaktivieren ist dumm.

    Ist es nicht, weil jedes unnötige Script das läuft, CPU Resourcen verheizt und die Maschine langsam macht.
    Dies gilt umso mehr, wenn der Javascript Code grottig geschrieben wurde.


  • Mod

    Siehst du, du willst nichts lernen - du willst nur streiten. Merkt man an der formulierung.

    Wenn du eine ernsthafte Frage hast, dann stelle sie.



  • Shade Of Mine schrieb:

    Siehst du, du willst nichts lernen - du willst nur streiten. Merkt man an der formulierung.

    Wenn du eine ernsthafte Frage hast, dann stelle sie.

    Was erwartest du?
    Du erzählst mir hier vom Pferd dass man kein JS brauchen würde und erwähnst gleichzeitig, das man es ja doch braucht.

    Alle deine Lösungsvorschläge, mit Ausnahme der, alte Browser zu ignorieren, erfordern Javascript wenn die Webseite auch für alte Browser geeignet sein soll.



  • Ich möchte hier Shade Of Mine unterstützen. Es ist so einfach wie es ist. Willst Du neue Features verwenden, muss der Client diese auch kennen. Wenn Du Clients unterstützen möchtest, die diese Features nicht kennen, dann darfst Du sie einfach nicht verwenden. Das ist doch wirklich ganz einfach.


  • Mod

    tntnet schrieb:

    Ich möchte hier Shade Of Mine unterstützen. Es ist so einfach wie es ist. Willst Du neue Features verwenden, muss der Client diese auch kennen. Wenn Du Clients unterstützen möchtest, die diese Features nicht kennen, dann darfst Du sie einfach nicht verwenden. Das ist doch wirklich ganz einfach.

    bzw. man kann diese Features nachrüsten - und das ist dann eben JavaScript.

    Aber diese Bleeding Edge Features sind idR eh nicht notwendig und die meisten Features sind abwärtskompatibel. zB range input - das wird, wenn der Browser es nicht kann als Textfeld angezeigt. Der User kann dann die gewünschte Zahl halt händisch eingeben anstatt einen coolen Slider zu bekommen.

    Und wenn man unbedingt einen Slider haben will und die Zielbrowser das nicht können, naja, dann muss man halt etwas programmieren.



  • Vielleicht will uns der original Poster mal verraten, wie er etwas erweitern möchte, ohne es zu verändern.



  • tntnet schrieb:

    Vielleicht will uns der original Poster mal verraten, wie er etwas erweitern möchte, ohne es zu verändern.

    Es geht nicht um das erweitern ohne es zu verändern, sondern um die Tatsache, dass man für diese ganzen Checks Javascript benötigt.

    Damit gibt es bald faktisch keine Seite mehr, die ohne JS auskommt.

    Bessere wäre es gewesen, HTML 5 wie früher als vollwertige Version anzubieten, bei der die Browser, die HTML 5 konform sein wollen, einfach alle Features unterstützen müssen, um HTML 5 konform zu sein.

    Wäre es so, dann könnte man aus HTML 5 alles nutzen was da ist, ohne auch jemals das mit JS zu prüfen.

    Den alten Browsern ist damit zwar nicht geholen, aber für die kann man dann ja HTML 4 verwenden.


  • Mod

    Javascriptzwang schrieb:

    Es geht nicht um das erweitern ohne es zu verändern, sondern um die Tatsache, dass man für diese ganzen Checks Javascript benötigt.

    Ja, wenn du die Checks machen willst dann brauchst du JS dazu. Aber wozu willst du diese Checks machen? Das ist unnötig.

    Du kannst nicht sagen du willst Bleeding Edge Technologie auf alten Browsern verwenden ohne JS. Das geht nicht. Wenn du Bleeding Edge Features willst, dann verwende Bleeding Edge Browser. Du brauchst da kein JS. Und nahezu alle HTML5 Features sind abwärtskompatibel, so dass wenn der alte Browser das Feature nicht kennt, die Seite dennoch verwendbar ist.

    Was du sagst ist einfach nur Dumm.

    Bessere wäre es gewesen, HTML 5 wie früher als vollwertige Version anzubieten, bei der die Browser, die HTML 5 konform sein wollen, einfach alle Features unterstützen müssen, um HTML 5 konform zu sein.

    Das ist eine absolut Dumme Idee. Das wäre richtig schlecht für das Internet. Wenn du nachfragen willst warum das so ist, beantworte ich es dir gerne.

    Den alten Browsern ist damit zwar nicht geholen, aber für die kann man dann ja HTML 4 verwenden.

    lol.
    Logik und so, gell?

    Du kannst mit HTML5 einfach alle Features verwenden die die Browser können. Die meisten Features sind abwärtskompatibel so dass es nichts macht, wenn der Browser das Feature nicht kann. Du kannst immer noch HTML4 verwenden (aber Achtung, auch nicht alle HTML4 Features werden von allen Browsern unterstützt).

    Mit JS hast du lediglich die Möglichkeit Features auf Browsern zu verwenden die dieses Feature eigentlich nicht können. Das ist ein Positiverpunkt, kein Negativer. Du kannst mit JS Features auf alten Browsern nachrüsten. Du musst das aber nicht tun.

    PS:
    Ich habe kein Problem damit wenn man etwas nicht weiß und nachfragt - aber du stellst ja keine Frage sondern beschwerst dich darüber wie das Internet funktioniert auf einer wahnsinnigen lächerlichen Art.

    PPS:
    Und JavaScript ist ein Segen. Es zu deaktivieren ist Dumm. Wenn du wissen willst warum das Dumm ist, kann ich es dir auch gerne erklären.



  • Shade Of Mine schrieb:

    Das ist eine absolut Dumme Idee. Das wäre richtig schlecht für das Internet. Wenn du nachfragen willst warum das so ist, beantworte ich es dir gerne.

    ..
    PPS:
    Und JavaScript ist ein Segen. Es zu deaktivieren ist Dumm. Wenn du wissen willst warum das Dumm ist, kann ich es dir auch gerne erklären.

    Okay, das hätte ich jetzt gerne erläutert.

    JS verbraucht unnötig Ressourcen, dies hatte ich schon erwähnt.
    Das man mit JS die Seite aufpeppen kann und manche Dinge schon auf dem Client berechnen lassen kann um den Server zu entlasten, dies ist mir durchaus bekannt,
    aber das ist kein Grund, JS generell für jeden Fliegenschiss einzusetzen und vom Nutzer zu fordern, dass er es aktiviert, nur damit die Seite ordentlich funktioniert.
    Neben dem Performanceproblem kann JS nämlich auch eine Sicherheitslücke darstellen und in der Vergangenheit war das auch schon oft der Fall.



  • Pack deinen Rechner/Smartphone/Tablet/Whatever wieder ein und schicke ihn, mit der Aufschrift "Ich bin zu blöd für neue IT", wieder zurück. Wenn du neue Technologie nicht nutzen willst, dann lass es doch einfach. Javascript ist einer DER Bausteine der aktuellen und zukünftigen Webtechnologie. Wenn dir das Web nicht liegt, dann lass es halt.



  • Shade, ich warte noch auf eine Antwort, nur weil ein dummer Troll wie JS4Future hier antwortet, bedeutet das nicht, dass ich keine Antwort von dir mehr möchte.


  • Mod

    Javascriptzwang schrieb:

    Shade, ich warte noch auf eine Antwort, nur weil ein dummer Troll wie JS4Future hier antwortet, bedeutet das nicht, dass ich keine Antwort von dir mehr möchte.

    Die Antwort von JS4Future ist fachlich vollkommen Korrekt.

    Aber JS ist in einer modernen Umgebung nicht der Stromverschwender. Exzessiver falscher Einsatz einer Technik kann aber natürlich immer zu Problemen führen.

    Aber JS Engine sind hochoptimiert und JS Code ist recht trivial zu parsen. Das HTML parsen dagegen frisst sehr relevante Zeit oder das Laden der Bilder und sie im RAM zu halten frisst stark Resourcen. Das wirkliche Strom Problem bekommst du aber sowieso durch UMTS/WLAN, das kostet wirklich Strom.

    Und JS läuft in einer Sandbox und hat damit deutlich weniger Sicherheitsprobleme als zB Bilddarstellung. Aber wozu schreibe ich das hier. JS4Future hat es deutlich besser formuliert.

    Wenn du eine ernsthafte Frage hast, beantworte ich sie dir gerne.



  • JS4Future ist ein Depp und hat gar nichts beantwortet.
    Und wer weiß schon, ob du hier als unreg postest.


Anmelden zum Antworten