Im Idealfall hätten wir verschiedene Browser, die dieselben Standards und denselben Code unterstützen und auf allen Browsern dasselbe Ergebnis erzielen.
Das ist noch nicht passiert. Was sind die Gründe warum?
gopher
.
Im Idealfall hätten wir verschiedene Browser, die dieselben Standards und denselben Code unterstützen und auf allen Browsern dasselbe Ergebnis erzielen.
Das ist noch nicht passiert. Was sind die Gründe warum?
gopher
.
Antworten:
Nein, es ist nicht realistisch, da die technischen Daten manchmal verwirrend sind und jeder etwas anders versteht als andere. Wir sind doch nur Menschen. Es kann nur einen wahren Standard geben, wenn es nur einen Anbieter mit einer Version eines Produkts gibt.
Joel hat einen ausgezeichneten Artikel zu diesem Thema geschrieben, Martian Headsets .
Ich glaube, ich werde ihn hier zitieren, da dies die beste Erklärung dafür ist, warum wir dies niemals sehen werden, solange verschiedene Anbieter beteiligt sind:
Diese Dokumente sind sehr verwirrend. Die Spezifikationen sind voll von Aussagen wie „Wenn eine Geschwister-Blockbox (die nicht schwebt und nicht absolut positioniert ist) der Einlaufbox folgt, wird die Einlaufbox zur ersten Inline-Box der Blockbox. Ein Einlauf kann nicht in einen Block laufen, der bereits mit einem Einlauf beginnt oder der selbst ein Einlauf ist. “ Wenn ich solche Dinge lese, frage ich mich, wie jemand die Spezifikation korrekt einhält.
Es gibt auch Wettbewerb und Entwicklung auf dem Markt. Nehmen wir zum Beispiel Autocomplete-Boxen. Jeder große Browser hat sie bereits, aber es ist kein Standard definiert. Das W3C ist einfach zu langsam und zum Zeitpunkt des Eintreffens des Standards gibt es bereits 5 verschiedene Implementierungen mit unterschiedlichen Verhaltensweisen, die Sie auch unterstützen müssen, wenn Sie wettbewerbsfähig sein möchten. Ein weiteres Paradebeispiel für dieses Problem ist das Einbetten von Videos.
Das heißt: Solange Sie verschiedene Browser und Umgebungen unterstützen müssen, müssen Sie auf Anpassungen vorbereitet sein.
Nein, da W3C in vielen Spezifikationen die Verantwortung für die Implementierung irgendwo auf die UA-Implementierer (Browser-Implementierer) überträgt. Warum ich das sage, weil ich meine Artikel normalerweise direkt aus den W3C-Spezifikationen schreibe und diese Fälle sehe. Zum Beispiel sagt W3C, dass Browser die Zustimmung des Benutzers zur Freigabe ihrer Position (über die Geolocation-API ) einholen sollten , aber nicht, wie sie danach fragen sollen. Dies kann dazu führen, dass verschiedene Nachrichtentypen in verschiedenen Browsern unterschiedlich angezeigt werden (Popup, Slide-Down usw.).
Im Allgemeinen können wir sagen, dass:
Solange eine pluralistische Anforderungsimplementierung vorliegt, ist es schwierig, eine Konsistenz zwischen den Browsern zu erreichen .
Wir können nur dann konsistente Browser sehen, wenn W3C den Browser-Implementierern unbedingt mitteilt, was zu tun ist.
Wird in der von Ihnen beschriebenen Form nicht passieren.
Jedoch; Wenn Sie konservativ codieren, ist das Schreiben von Code, der in allen neuen Browsern zuverlässig und vorhersehbar funktioniert, nicht sehr aufwändig. In den letzten zehn Jahren haben wir bereits einen langen Weg zurückgelegt. Selbst der Internet Explorer implementiert derzeit einen großen Teil der W3C-Empfehlungen korrekt, sodass tatsächlich browserunabhängige Websites erstellt werden.
Wenn Sie Dinge tun möchten, die nicht in den Empfehlungen aufgeführt sind, oder Funktionen verwenden möchten, die vage oder immer noch falsch (oder überhaupt nicht) implementiert sind, sind Sie auf sich allein gestellt.
Es ist äußerst unwahrscheinlich, dass es bald passieren wird - in der Tat würde ich sogar sagen, dass wenn / wenn es passiert, es ein starkes Zeichen dafür ist, dass die Welt sich weiterentwickelt hat und sich einfach nicht mehr viel um Webbrowser kümmert .
Das Problem ist recht einfach: Das meiste Limit beim Schreiben neuer Standards für noch coolere Dinge, die Browser tun könnten , liegt in der mangelnden (sogar vernünftigen) Übereinstimmung mit vorhandenen Standards. Mit Blick auf die von einer etwas anderen Richtung, entsprechen die Minute Browser mit bestehenden Standards (oder kommen sogar recht nahe an konform), ist es , dass ein paar Leute zumindest fast sicher ist Denken „starten gehen Aber wäre es nicht cool, wenn wir könnten ... ", und sie werden dann eines von zwei Dingen tun: entweder sie werden ihre Idee in einem Browser implementieren und dann daran arbeiten, ihre Idee zu standardisieren (fast unvermeidlich bevor irgendein anderer Browser sie implementiert), oder sie werden es tun Ich arbeite daran, einen Standard für dieses Verhalten zu schreiben, obwohl es noch kein Browser implementiert.
Das Fazit ist, dass die Implementierung von Standards in allen Browsern fast zwangsläufig hinter der Erfindung neuer Standards zurückbleibt, mit denen sie konform sein müssen. Die Browser können nur aufholen, wenn die Leute aufhören, neue Dinge für die Browser zu schreiben / zu entwerfen.
Gleichzeitig möchte ich Sie darauf hinweisen, dass auch mehr oder weniger das Gegenteil zutrifft: Dies ist ein ständig wachsender Satz von Standards, mit denen sich Browser immer enger anfreunden. Es ist noch nicht lange her, dass das beste Ergebnis, das ein Browser beim Acid3-Test erzielt hat, 93/100 war. Das ist übrigens genau die gleiche Punktzahl, die der IE derzeit erhält ...
Im Idealfall hätten wir verschiedene Browser, die dieselben Standards und denselben Code unterstützen und auf allen Browsern dasselbe Ergebnis erzielen.
Das wirft die Frage auf, warum wir unterschiedliche Browser benötigen. Wenn alle im Grunde dasselbe tun, wird ein Browser für alle ausreichen. Das wäre ja ideal. Keine unnötigen Doppelarbeiten mehr und kein browserspezifischer Code. Die Menschen konnten endlich auf einem soliden Fundament aufbauen.