Лучший способ просмотреть сгенерированный источник веб-страницы?

К сожалению, нет никакого способа разъединить один объект от менеджера по объекту в текущей реализации JPA, AFAIR.

EntityManager.clear () разъединится весь объекты JPA, так, чтобы не могло бы быть соответствующее решение во всех случаях, если у Вас есть другие объекты, Вы действительно планируете связаться.

, Таким образом, Ваш лучший выбор состоял бы в том, чтобы клонировать объекты и передать клоны коду, который изменяет объекты. Так как примитивные и неизменные поля объекта заботятся о механизмом клонирования значения по умолчанию надлежащим способом, Вы не должны будете писать большую инфраструктуру кода (кроме глубокого клонирования любых агрегированных структур, которые Вы могли бы иметь).

83
задан Brock Adams 31 July 2010 в 03:53
поделиться

5 ответов

[обновление в ответ на более подробную информацию в отредактированном вопросе]

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

Как вы заметили, IE DOM хранит теги в верхнем регистре, исправляет незакрытые теги и вносит множество других изменений в исходный HTML. Это связано с тем, что браузеры обычно очень хорошо воспринимают HTML с проблемами (например, незакрытые теги) и исправляют эти проблемы, чтобы отобразить что-то полезное для пользователя. Насколько мне известно, после канонизации HTML в IE исходный исходный HTML по существу теряется с точки зрения DOM.

Firefox, скорее всего, вносит меньше этих изменений, поэтому Firebug, вероятно, ваш лучший выбор.

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

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

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

[Оригинальный ответ здесь на исходный вопрос]

Fiddler ( http://www.fiddlertool.com/ ) - бесплатный, независимый от браузера инструмент, который очень хорошо работает для получить точный HTML-код, полученный браузером. Он показывает вам точные байты на проводе, а также декодированный / разархивированный / и т.д. контент, который вы можете передать в любой инструмент анализа HTML. Он также показывает заголовки, время, статус HTTP и многое другое.

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

Fiddler работает как прокси-сервер, находясь между вашим браузером и веб-сайтом, и регистрирует проходящий трафик в обе стороны.

32
ответ дан 24 November 2019 в 08:53
поделиться

Использование панели инструментов веб-разработчика Firefox ( https://addons.mozilla.org/en-US/firefox/addon/60 )

Просто перейдите в Просмотр Источник -> Просмотреть созданный исходный код

Я использую его постоянно для одного и того же.

6
ответ дан 24 November 2019 в 08:53
поделиться

In the Web Developer Toolbar, have you tried the Tools -> Validate HTML or Tools -> Validate Local HTML options?

The Validate HTML option sends the url to the validator, which works well with publicly facing sites. The Validate Local HTML option sends the current page's HTML to the validator, which works well with pages behind a login, or those that aren't publicly accessible.

You may also want to try View Source Chart (also as FireFox add-on). An interesting note there:

Q. Why does View Source Chart change my XHTML tags to HTML tags?

A. It doesn't. The browser is making these changes, VSC merely displays what the browser has done with your code. Most common: self closing tags lose their closing slash (/). See this article on Rendered Source for more information (archive.org).

11
ответ дан 24 November 2019 в 08:53
поделиться

Если вы загрузите документ в Chrome, представление Developer | Elements покажет вам HTML, измененный вашим JS-кодом. Это не просто HTML-текст, и вы должны открывать (развертывать) любые интересующие вас элементы, но вы эффективно можете проверить сгенерированный HTML-код.

12
ответ дан 24 November 2019 в 08:53
поделиться

Джастин мертв. Ключевым моментом здесь является то, что HTML - это просто язык для описания документа. Как только браузер его прочитает, он исчезнет . Открытые теги, закрывающие теги и форматирование обрабатываются парсером , а затем удаляются . Любой инструмент, который показывает вам HTML, генерирует его на основе содержимого документа, поэтому он всегда будет действительным.

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

Вы можете попробовать это на себе в любой консоли JavaScript:

el = document.createElement('div');
el.innerHTML = "<p>Some text<P>More text";
el.innerHTML; // <p>Some text</p><p>More text</p>

Незакрытые теги и имена тегов в верхнем регистре исчезли, потому что этот HTML был проанализирован и отброшен после второй строки.

Правильный способ изменить документ из JavaScript - использовать методы документа ( createElement , appendChild , setAttribute и т. Д.), И вы заметите, что ни в одной из этих функций нет ссылки на теги или синтаксис HTML. Если вы используете document.write , innerHTML или другие HTML-вызовы для изменения своих страниц, единственный способ проверить это - уловить то, что вы в них вкладываете. и проверить этот HTML отдельно.

Тем не менее, самый простой способ получить HTML-представление документа:

document.documentElement.innerHTML
34
ответ дан 24 November 2019 в 08:53
поделиться
Другие вопросы по тегам:

Похожие вопросы: