2012-03-19 3 views
0

Допустим, мы имеем следующий HTML синтаксис:Invalid/Неверная HTML синтаксис - производительность

<TABLE width=400, height=300> 
<TR> 
    <TD color=Red>SOME TEXT</TD> 
</TR> 
</TABLE> 

, как можно видеть, нет никакого стиля используются все теги написаны с использованием заглавных букв. Это неверно. Я хотел бы сообщить, что такой неправильный синтаксис HTML влияет на производительность Интернета?

Кроме того, в коде, который я получаю от клиента, множество элементов управления HTML строятся в коде, а затем вводятся в aspx. Как это работает в таком случае?

+0

См. Этот вопрос: http://stackoverflow.com/questions/846994/how-to-use-html-agility-pack Вы можете использовать HtmlAgilityPack для исправления плохого html –

ответ

1

Элементы верхнего регистра действительны в HTML. HTML нечувствителен к регистру. Пока XHTML нет - все должно быть в нижнем регистре.

Верхний и нижний регистр не должны влиять на производительность. Но множество CSS, встроенных в HTML, могут очень сильно повлиять на производительность, так как часто внешний CSS будет более эффективно определять стиль глобально вместо каждого элемента.

HTML

http://www.w3.org/TR/html4/about.html#h-1.2.1

Имена элементов написаны заглавными буквами (например, BODY). Имена атрибутов записываются строчными буквами (например, lang, onsubmit). Напомним, что в HTML имена элементов и атрибутов нечувствительны к регистру; конвенция призвана способствовать удобочитаемости.

XHTML

http://www.w3.org/TR/xhtml1/#h-4.2

XHTML документы должны использовать нижний регистр для всех HTML-элементов и атрибутов. Эта разница необходима, поскольку XML чувствителен к регистру, например. <li> и <LI> - разные теги.

0

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

Помимо этого, я не уверен, что именно вы хотите знать, запросив информацию о гипотетическом синтаксисе.

+0

, это не гипотетический синтаксис. Это синтаксис от реального кода, который я получил от клиента –

1

Единственным нарушением общего синтаксиса HTML является запятая в <TABLE width=400, height=300>. Запятая, вероятно, будет взята как часть значения атрибута, а затем проигнорирована. Стоимость этой обработки ошибок невелика.

Производительность здесь не является проблемой. Основной рендеринг.

Атрибут height для table не допускается по спецификациям HTML; хотя широко поддерживается браузерами, поддержка не требуется (даже в черновиках HTML5, которые обычно требуют постоянной поддержки устаревших функций) и могут быть удалены в будущих браузерах.

Атрибут color для td не допускается по спецификациям HTML. Он не поддерживается ни одним браузером, о котором я знаю.Поэтому, если бы цель заключалась в том, чтобы текст был красным, он потерпит неудачу.

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

<style> 
[color=Red] { color: red; } 
</style> 

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

+0

приятный и полезный ответ. Благодаря! –

Смежные вопросы