Подтвердить что ты не робот

Возможна ли истинная отладка HTML?

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

Это причина для таких инструментов, как Aardvark, веб-разработчик, Firebug и многие другие.

Но когда я увидел Gecko Reflow Videos, они просто взорвали мой разум.

Тогда мой вопрос: возможно ли действительно отлаживать html (шаг через каждый элемент)? Или приблизиться к нему?

То, что я делал много, - использовать Aardvark и удалять элементы, но у Aardvark есть свои проблемы с "фоном" и одинаковыми элементами размера и неспособными настроить таргетинг на них.

UPDATE: Я пытался написать хорошее обновление для этого вопроса, так как это заставило меня задуматься об этом больше. Но поскольку английский язык не является моим основным языком, он был жестким.

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

Мы можем думать о прошлых десятилетиях как о ранних годах HTML/CSS, где главной целью было просто заставить работу работать. Теперь мы должны искать методы, которые ускоряют текущий процесс. Пример этого в видео выше, где движок Gecko работает через код дважды. Почему это? И есть ли другие случаи, когда он делает ненужные вещи (хотя они работают и совместимы)

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

4b9b3361

Ответ 1

Мои $0,02:

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

Например, при рендеринге таблицы должен ли пользовательский агент зарезервировать место для каждого <tr> перед тем, как передать их дочерний элемент <td>s (в ширину)? Или он должен отображать каждый ребенок <td> и каждого ребенка <td>s и т.д. (По глубине)? На практике пользовательские агенты делают всевозможные догадки, чтобы попытаться отобразить страницы как можно быстрее. Другими словами, не было бы никакой гарантии, что отладочный порядок будет соответствовать фактическому порядку визуализации и не должен быть.

HTML можно рассматривать как декларативный язык в этом смысле, поскольку он указывает, что должно быть сделано (страница, отображаемая в спецификации), но не совсем точно, как это сделать (точно, какой порядок отображать элементы на экране). В общем, лучше предположить, что все происходит сразу, хотя W3C дает несколько советов об ускорении рендеринга <table> на основе того, как пользователь агенты должны отображать элементы <table>.

IMO, панель инструментов webdev и Firebug - это лучшее, что у нас есть, где мы можем редактировать/отключать определенные HTML-элементы и правила CSS.

Ответ 2

ok - серьезный ответ.

Судя по комментариям на сайтах, которые я следил за этой ссылкой, я думаю, что вы и я знаем, что, вероятно, нет. В этих потоках много умных парней и блокетов, и они все швы указывают на "нет, это все умные 4 $!", Которые не помогут нам понять рендеринг.

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

Позвольте мне просто выбросить это. Считаете ли вы, что установка body { overflow: scroll; } по умолчанию может немного ускорить нас?

Ответ 3

По моему профессиональному мнению, действительно существует только один эффективный инструмент для факторинга/оценки/отладки в среде html: Итератор WebDev

Ответ 4

Большая часть информации, которую я могу найти на этой странице, это ссылка, которую я нашел в комментарии в нижней части ссылки, которую вы опубликовали:

http://dougt.wordpress.com/2008/05/24/what-is-a-reflow/

Ответ 5

Лично я чувствую, что ваш HTML проверяет спецификацию W3C, разве это не так? Необходимо разработать свой HTML-код для спецификации и позволить компаниям-разработчикам беспокоиться о своих ошибках (которые в наши дни довольно редки), чем сосредоточиться на старых ошибках браузера прошлого.

Плагин HTML Validator для Firefox (aka Tidy) - все, что любой веб-разработчик должен проверить, правильна ли их разметка, что неправильно, и где это неправильно.

Даже если вы можете выполнить истинную отладку, каждый браузер анализирует HTML по-своему, поэтому, даже если вы можете пройти через Firefox, чтобы увидеть, как происходит ошибка рендеринга, это не поможет вам с IE или Safari/Chrome вообще, потому что они выполняют разбор по-своему. Это не похоже на PHP,.NET или Java, где синтаксический анализ кода для всех одинаковый, отладка имеет смысл там.

Ответ 6

Тогда мой вопрос: возможно ли действительно отлаживать html (шаг через каждый элемент)? Или приблизиться к нему?

Возможно, вы можете пройти через процесс рендеринга страницы, запустив Firefox под gdb или изменив браузер с открытым исходным кодом, чтобы иметь кнопку "шаг", но я действительно сомневаюсь, что это достигнет чего-то полезного.

CSS не настолько сложный, все в основном представляет собой коробку с шириной/высотой/дополнением/маркой. Проблема с веб-разработкой (особенно CSS) заключается в том, что каждый браузер реализует рендеринг немного по-другому (несколько иначе, чем другие)..

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

Вы могли бы побрить 2 мс загрузки страницы, переупорядочив некоторые теги и используя другой метод позиционирования CSS.. или вы могли бы сократить время генерации страницы на 200 мс путем кеширования и половину времени ожидания сети, настроив вторую веб-страницу -сервер приближается к вашим пользователям. Сжатие вашего логотипа лучше, или сокращение вашего javascript, скорее всего, улучшит время загрузки (универсально, во всех браузерах!)

В принципе, если вас беспокоит время загрузки, есть гораздо лучшие места для начала. Если вы обеспокоены тем, как страница отображается, Firebug (- Lite) и http://browsershots.org (или виртуальная машина или две) - все, что вам нужно!