2010-01-08 1 views
29

Я заметил, что многие веб-сайты, даже Google и некоторые банковские сайты, имеют плохо написанный HTML без кавычек вокруг значений атрибутов или использование символов, таких как амперсанды, которые не были правильно экранированы в ссылках. Другими словами, многие используют разметку, которая не подтверждается.Почему некоторые основные веб-сайты используют недействительный HTML?

Мне любопытно узнать их причины. HTML имеет простые правила, и это просто ошеломительно, что они, похоже, не следуют этим правилам. Или они используют программы, которые просто выплевывают код?

+3

Смотрите также http://stackoverflow.com/questions/1967191/why-would-google-use-a-font-tag –

+4

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

+0

Я считаю, что большинство сайтов Google основаны на GWT, которая представляет собой java-структуру, которая автоматически генерирует html + css + javascript. – slebetman

ответ

110

Большинство людей получили ответ в основном —, что правила разные, когда вы обслуживаете страницу миллиард раз в день. Байты начинают иметь значение, и текущий уровень сжатия ясно показывает, что Google занимается экономией пропускной способности.

Несколько моментов:

Один из них, людей подразумевая, что причины Google, для сохранения пропускной способности являются финансовыми. Вряд ли. Даже несколько терабайт в день, сохраненные на странице результатов поиска Google, представляют собой падение в ковше по сравнению с суммой всех их свойств: Youtube, Blogger, Maps, Gmail и т. Д. Гораздо вероятнее, что Google хочет получить страницу результатов поиска, в частности, как можно быстрее загружать как можно больше устройств. Да, байты имеют значение, когда страница загружается миллиард раз в день, но байты также имеют значение, когда ваш пользователь использует спутниковый телефон в Сахаре и пытается получить 1 кбит/с.

Во-вторых, существует разница между кодифицированными стандартами XHTML и т. П. И фактическим стандартом того, что на самом деле работает в каждом браузере, когда-либо создаваемом с 1994 года. Здесь масштаб Google имеет значение, поскольку большинство веб-разработчиков рады игнорировать любой неприятный браузер, на долю которого приходится менее 0,1% своих пользователей, для Google, что 0,1% составляет, возможно, полмиллиона человек. Они имеют значение. Поэтому их страница результатов поиска должна работать на IE 5.5. Именно по этой причине они по-прежнему используют таблицы для компоновки на многих страницах с высоким значением - это все еще макет, который «просто работает» на наибольшем числе браузеров.

В качестве упражнения, будучи стажером в Google, я написал совершенно совместимую версию страницы результатов поиска Google XHTML/CSS и показал ее. В конце концов возник вопрос: почему мы обслуживаем такой HTML-файл hodge-podge? Разве мы не должны возглавлять сообщество веб-разработчиков по направлению к стандартам? Ответ, который я получил, был во многом вторым. Google следит за стандартом - а не с хорошими стандартами веб-утопии, а с реальностью.

+1

Хороший ответ с пониманием «настоящего мира». –

+0

+1 «... для Google, что 0,1% - это, возможно, полмиллиона человек». Хорошая перспектива (особенно от кого-то «внутри»). –

+0

Но тогда я думаю, что они должны служить сломанному HTML только для сломанных веб-браузеров. –

10

У Google есть веская причина для написания плохого HTML – каждый символ, который они снимают со страницы поиска, сохранит их, вероятно, гигабайт пропускной способности в день.

+0

Пропускная способность, уменьшенная путем пиринга http://blogs.broughturner.com/2009/04/youtubes-fine соглашения -analysts-dont-understand-internet-peering.html затрудняют оценку того, в какой степени сохранение полосы пропускания конкурирует с другими факторами, которые Google считает. – micahwittman

+0

Это не значит, что программист в коде Google использует недопустимый html. Их чистая работа, скорее всего, проходит через фильтр, прежде чем переходить на живой сервер, который лишает любого ненужного персонажа (как видно из источника их главной страницы). –

+0

Этот миф был развенчан много раз, указав, что Google даже не оптимизирует свой имидж логотипа, который бы сэкономил им гигабайт пропускной способности * минуту *. –

4

Для нескольких сайтов, таких как Google, наличие совершенного кода не является «тем» важным.

Общий размер веб-страницы однако есть. Несколько байтов, сохраненных в HTML-коде, могут означать сотни долларов в полосе пропускания.

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

2

Вообще говоря, кодирование веб-сайта легко и, следовательно, входной барьер очень низок для неопытных или не программистов. Это упрощает создание подстандартных страниц, и сеть усеяна ими. Объедините это с такими инструментами, как Microsoft Frontpage, что делает его еще проще сделать сайт (и даже проще создать плохой код HTML), и у вас неприятная ситуация.

6

Как было discussed previously, google делает это по причинам пропускной способности.

Что касается банков и других enterprisey сайтов, там может быть несколько reasons-

  1. CMS выплевывает недопустимый HTML
  2. Dreamweaver, достаточно сказал.
  3. Тенденция использования коммерческих компонентов пользовательского интерфейса, которые были разработаны для работы даже в древних браузерах, поэтому они ошибаются на осторожной стороне.
  4. Никакой акцент на хороших методах HTML и Javascript. Многие из них, как правило, являются Java или .NET-магазинами без хороших разработчиков пользовательского интерфейса.
  5. Плохо разработанные пользовательские элементы управления и теги JSTL.
+1

+1 очень хороший ответ. –

+2

Вы забыли начальную страницу MS. Выдает гораздо худший код, чем когда-либо думал Dreamweaver. Не могу сказать, сколько часов я потратил на очистку чужого кода от Frontpage только из-за всего мусора, из-за которого почти невозможно читать. –

+2

Или экспортируйте документ Word как HTML и загрузите его как веб-страницу. Уродливо, черт возьми. –