Почему нереально ожидать, что все браузеры будут поддерживать одинаковые стандарты? [закрыто]


12

В идеале у нас должны быть разные браузеры, поддерживающие одинаковые стандарты и один и тот же код, дающий одинаковый результат во всех браузерах.

Этого еще не произошло. Каковы причины, почему?


1
«Один и тот же код дает одинаковый результат во всех браузерах». - это не то, что стандарты для. «Один и тот же код работает предсказуемо во всех браузерах».
tdammers

1
Я задавал этот вопрос в течение многих лет
billy.bob

1
К сожалению, нет ... Я очень долго надеялся на это.
Corv1nus

Только однажды веб, как мы знаем, так же мертв, как и gopher.
dmckee --- котенок экс-модератора

Потому что W3C - это ужасно управляемая организация, которая не успевает за темпами развития технологий. Вот и все.
Джордан

Ответы:


18

Нет, это нереально, потому что спецификации иногда сбивают с толку, и каждый понимает что-то по-другому, чем другие. В конце концов, мы просто люди. Может быть только один настоящий стандарт, когда есть только один поставщик с одной версией продукта.

Джоэл написал отличную статью на эту тему под названием « Марсианские наушники» .

Я думаю, что процитирую его здесь, так как это лучшее объяснение того, почему мы никогда не увидим это, пока вовлечены разные поставщики:

Эти документы очень запутанные. Спецификации полны утверждений типа «Если блок блока-брата (который не плавает и не является абсолютно позиционированным) следует за блоком ввода, то блок ввода становится первым встроенным блоком блока блока. Запуск не может быть запущен в блок, который уже начинается с запуска или который сам по себе является входом ». Всякий раз, когда я читаю такие вещи, я удивляюсь, как кто-то правильно соответствует спецификации.

Кроме того, на рынке есть конкуренция и эволюция. Возьмите автозаполнение коробки, например. У каждого крупного браузера они уже есть, но стандарт не определен. W3C слишком медленный, и к моменту появления стандарта уже существует 5 различных реализаций с различным поведением, которые вам тоже нужно поддерживать, если вы хотите быть конкурентоспособными. Другим ярким примером этой проблемы является встраивание видео.

Тем не менее, если вам необходимо поддерживать различные браузеры и среды, будьте готовы внести коррективы.


11

Нет, потому что W3C во многих спецификациях возлагает ответственность за реализацию где-либо на разработчиков UA (разработчиков браузеров). Почему я так говорю, потому что я обычно пишу свои статьи непосредственно из спецификаций W3C и вижу эти случаи. Например, W3C говорит, что браузеры должны принять согласие пользователя на обмен своей позицией (через Geolocation API ), но не говорит, как они должны запрашивать это. Это может привести к тому, что разные типы сообщений будут отображаться по-разному (всплывающие окна, слайды и т. Д.) В разных браузерах.

В целом можно сказать, что:

Пока существует какая-то плюралистическая реализация требований, трудно добиться согласованности между браузерами .

Мы можем видеть согласованные браузеры только тогда, когда W3C настоятельно говорит разработчикам браузеров, что делать.


Хороший, Саид =) +1
Сокол

Спасибо @Falcon. Это был добрый вопрос моего второго вопроса. Однако тот получил много отрицательных голосов и удалил: D. Я думаю, что мы все знаем, что IE является самым нестандартным браузером.
Саид Нимати

7

Не произойдет в той форме, которую вы описываете.

Тем не мение; если вы программируете консервативно, то написание кода, который работает надежно и предсказуемо для всех новых браузеров, не займет много времени. Мы уже прошли большой путь за последнее десятилетие - даже IE в настоящее время правильно реализует большое подмножество рекомендаций W3C, достаточное для того, чтобы на самом деле создавать сайты, независимые от браузера.

Конечно, если вы хотите сделать то, чего нет в рекомендациях, или использовать функции, которые определены неопределенно, или все еще реализованы неправильно (или вообще не реализованы), то вы сами по себе.


1

Это вряд ли произойдет в ближайшее время - на самом деле, я бы сказал, что когда / если это произойдет, это явный признак того, что мир движется, и просто больше не заботится о веб-браузерах ,

Проблема довольно проста: большинство ограничений на написание новых стандартов для еще более клевых вещей, которые могут делать браузеры , это отсутствие (даже разумного) соответствия существующим стандартам. Если взглянуть на это с несколько иной точки зрения, то, как мелкие браузеры соответствуют существующим стандартам (или даже достаточно близко соответствуют), почти наверняка, по крайней мере, несколько человек начнут думать: «Не было бы здорово, если бы мы могли бы ... ", и тогда они сделают одно из двух: они либо реализуют свою идею в одном браузере, а затем работают над стандартизацией своей идеи (почти неизбежно, прежде чем любой другой браузер реализует ее), или они будут работать над написанием стандарта для такого поведения, хотя ни один браузер пока не реализует его.

Суть в том, что внедрение стандартов в браузерах почти неизбежно отстает от изобретения новых стандартов, которым они должны соответствовать. Единственный способ, которым браузеры могут все догнать, - это если люди перестанут писать / разрабатывать новые вещи для браузеров.

В то же время я чувствую себя обязанным отметить, что более или менее верно и обратное: это постоянно растущий набор стандартов, которым браузеры все более тесно соответствуют. Это было не так давно, что лучший результат, который любой браузер получил на тесте Acid3, был 93/100. Так получилось, что это точно такой же результат, как сейчас IE ...


0

В идеале у нас должны быть разные браузеры, поддерживающие одинаковые стандарты и один и тот же код, дающий одинаковый результат во всех браузерах.

Это поднимает вопрос, зачем нам нужны разные браузеры. Если все делают в основном одно и то же, тогда одного браузера будет достаточно для всех. Это действительно было бы идеально. Нет больше бесполезного дублирования усилий и больше нет кода, специфичного для браузера. Люди наконец могли начать строить на прочном фундаменте.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.