Как отлаживать JavaScript, который является результатом XHR

Мое приложение ASP.NET MVC отправляет запрос XHR из представления и извлекает другое частичное представление. Это частичное представление связывает некоторые обработчики событий.

Я хотел бы установить точку останова в обработчике событий этих частичных представлений и отладить его.

У меня IE 9, Firefox 14.0.1 и Chrome 28.0.1500.5.

Я использую Visual Web Developer 2010 Express.


person Water Cooler v2    schedule 03.06.2013    source источник
comment
I would like to set a break-point in the event handler of these partial views and debug it. - что тебе мешает?   -  person Oded    schedule 03.06.2013
comment
Частичное представление — это представление на стороне сервера (.cshtml). Он не будет отображаться в отладчиках инструментов разработчика браузера. Поэтому я не могу установить в них точку останова.   -  person Water Cooler v2    schedule 03.06.2013
comment
А когда он загружается? Вы можете установить точку останова и перезагрузить.   -  person Oded    schedule 03.06.2013
comment
И установка точки останова в коде javascript в Visual Web Developer 2010 Express не работает. Он помечает строку как точку останова, но не вмешивается. Я уверен, что это было бы просто решить. Как сделать так, чтобы он вмешался?   -  person Water Cooler v2    schedule 03.06.2013
comment
Вы также можете поставить точку останова в успехе XHR перед загрузкой JS и продолжить пошаговое выполнение.   -  person Oded    schedule 03.06.2013
comment
Спасибо, Одед. Я бы. Дело в том, что сразу после отправки страницы входа контроллер входа загружает мастер (разметку Razor), который содержит инициацию запроса XHR. Поскольку это тоже cshtml, я также не могу установить точку останова.   -  person Water Cooler v2    schedule 03.06.2013
comment
And once it is loaded? You can set a breakpoint and reload. Кроме того, когда я пытаюсь отладить его в отладчике JavaScript IE, он говорит, что к другому процессу уже подключен отладчик, которым, как я полагаю, является Visual Web Developer. Как решить эту проблему?   -  person Water Cooler v2    schedule 03.06.2013


Ответы (2)


В функции успеха XHR просто добавьте debugger; - docs

Откройте браузер в режиме инструментов разработчика, и js автоматически прервется в этой строке.

person Sean Kenny    schedule 03.06.2013
comment
Большое спасибо. Я могу добавить ключевое слово отладчика даже во встроенные сценарии в представлениях, и оно не работает даже в составном html, сгенерированном и отправленном клиенту в отладчике Visual Studio. Я не так хорош в JavaScript. Когда я изучал его в последний раз несколько месяцев назад, я узнал о ключевом слове отладчик, но снова забыл о нем. Огромное спасибо за помощь. - person Water Cooler v2; 03.06.2013
comment
Добро пожаловать. Одно из наиболее часто используемых ключевых слов в javascript :-) - person Sean Kenny; 03.06.2013
comment
Вау, я несколько месяцев думал о том, что можно сделать такую ​​вещь... это так полезно! Также обратите внимание, что он указан в ECMAScript 5.1 и поэтому должен работать в большинстве браузеров. - person djule5; 13.01.2016

Я хотел бы установить точку останова в обработчике событий этих частичных представлений и отладить его.

Отлично, вперед. Загрузите FireBug и (F12) вы можете поставить точку останова в коде javascript и debug it.

person Darin Dimitrov    schedule 03.06.2013
comment
Спасибо, Дарин. У меня есть Firebug, и я довольно часто использую инструменты разработчика всех трех браузеров. Но я никогда не использовал его для возвращаемого XHR кода JavaScript. Запрос ajax отправляется контроллеру на стороне сервера, который возвращает частичное представление. Я хочу установить точку останова в этом частичном представлении. Браузер не отображает представления, поскольку они являются компонентами на стороне сервера. Как указать отладчику моего браузера установить точку останова в разметке, возвращаемой этим запросом XHR/частичное представление/ajax? - person Water Cooler v2; 03.06.2013
comment
Но частичное представление должно содержать разметку, а не скрипты. Скрипты должны быть помещены в отдельные файлы javascript. Надеюсь, вы следуете лучшим практикам и не смешиваете разметку со скриптами. - person Darin Dimitrov; 03.06.2013
comment
Спасибо, Дарин. Это большой проект. Я не писал код, который отлаживаю. Я бы, как и всегда, разделил все для собственного здравомыслия. Я не могу работать неправильно. :-) - person Water Cooler v2; 03.06.2013
comment
Как вы получаете эту красивую коробку вокруг F12? - person Water Cooler v2; 03.06.2013
comment
‹kbd›F12‹/kbd›: я увидел ваш исходный код MarkDown, нажав «Изменить» в вашем ответе. Хе-хе! - person Water Cooler v2; 17.06.2013