Чому нереально сподіватися, що всі браузери підтримуватимуть однакові стандарти? [зачинено]


12

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

Це ще не сталося. Які причини?


1
"Той самий код дає однаковий результат у всіх браузерах." - це не те, для чого стандарти. "Той самий код передбачувано працює у всіх браузерах".
tdammers

1
Я задаю це питання роками
billy.bob

1
На жаль, ні ... Хоча я давно сподівався на це.
Corv1nus

Тільки один раз Інтернет, як ми знаємо, настільки ж мертвий gopher.
dmckee --- кошеня колишнього модератора

Тому що W3C - жахливо керована організація, яка не може йти в ногу з темпом технології. Це майже все.
Йордан

Відповіді:


18

Ні, це не реально, тому що характеристики часом заплутані, і кожен розуміє щось інакше, ніж інші. Адже ми просто люди. Єдиний справжній стандарт може бути лише тоді, коли є лише один постачальник з однією версією товару.

Джоел написав чудову статтю на цю тему під назвою Марсіанські гарнітури .

Я думаю, що тут я його процитую, оскільки це найкраще пояснення того, чому ми ніколи цього не побачимо, якщо задіяні різні постачальники:

Ці документи дуже заплутані. Технічні характеристики переповнені висловлюваннями на кшталт "Якщо блок блоків братів (який не плаває і не є абсолютно розташованим) слідує за вхідним вікном, то блок запуску стає першим вбудованим блоком блоку. Пробіг не може набігати на блок, який вже починається з прогону, або сам по собі є пробігом. " Щоразу, коли я читаю подібні речі, мені цікаво, як хтось правильно відповідає специфікації.

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

Це зазначає: Поки вам потрібно підтримувати різні браузери та середовища, будьте готові вносити корективи.


11

Ні, тому що W3C у багатьох специфікаціях несе відповідальність за впровадження десь перед реалізаторами UA (реалізаторами браузера). Чому я це кажу, тому що зазвичай пишу свої статті безпосередньо із специфікацій W3C і бачу ці випадки. Наприклад, W3C каже, що браузери повинні приймати згоду користувача щодо спільного використання своєї позиції (через API Geolocation ), але він не говорить про те, як їм це потрібно запитувати. Це може призвести до того, що повідомлення різних типів відображатимуться по-різному (спливаючі вікна, розсувні панелі тощо) у різних браузерах.

Загалом, можна сказати, що:

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

Ми можемо бачити послідовні браузери лише тоді, коли W3C обов'язково повідомляє виконавцям браузера, що робити.


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

Дякую @Falcon. Це було добрим моїм питанням два. Однак той отримав багато голосів і видалив: D. Я думаю, що всі ми знаємо, що ІЕ - це найбільш нестандартний браузер.
Saeed Neamati

7

Не відбудеться в описаній вами формі.

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

Звичайно, якщо ви хочете робити речі, які не вказані в рекомендаціях, або використовувати функції, які чітко прописані, або все-таки реалізовані неправильно (або зовсім не), то ви самостійно.


1

Це вкрай малоймовірно, що відбудеться незабаром - насправді я б пішов так далеко, щоб сказати, що коли / якщо це станеться, це сильний знак того, що світ рухався далі, і просто більше не переймається веб-браузерами. .

Проблема досить проста: більшість обмежень щодо написання нових стандартів для ще крутіших речей, які могли б зробити браузери , - це відсутність (навіть розумної) відповідності існуючим стандартам. Дивлячись на це з дещо іншого напрямку, хвилинні браузери відповідають існуючим стандартам (або навіть доволі близькі до відповідних), майже впевнено, що принаймні кілька людей почнуть думати: "Але чи не було б здорово, якби ми може ... ", і вони потім зроблять одне з двох: вони або реалізують свою ідею в одному веб-переглядачі, і потім працюватимуть над стандартизацією своєї ідеї (майже неминуче, перш ніж будь-який інший браузер реалізує її), або вони працювати над написанням стандарту для такої поведінки, хоча жоден браузер цього не реалізує.

Суть полягає в тому, що впровадження стандартів у браузерах майже неминуче відстає від винаходу нових стандартів, яким потрібно відповідати. Єдиний спосіб, коли браузери зможуть наздогнати, це якщо люди кинуть писати / розробляти нові речі для браузерів.

У той же час я відчуваю, що я зобов'язаний зазначити, що більш-менш зворотна також вірна: це постійно зростаючий набір стандартів, яким браузери відповідають тісніше. Не дуже давно найкращий бал, отриманий будь-яким браузером за тест Acid3, був 93/100. Як це буває, це точно та сама оцінка, яку IE наразі отримує ...


0

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

Це викликає питання, чому нам потрібні різні браузери. Якщо всі роблять одне і те ж, то одного браузера вистачить на всіх. Це справді було б ідеально. Немає більше марного дублювання зусиль і більше не конкретного коду браузера. Люди нарешті могли почати будувати на міцному фундаменті.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.