Отладка JavaScript после добавления метода через AJAX - PullRequest
0 голосов
/ 05 октября 2011

Я использую MVC и jquery для извлечения функции с сервера (как частичное представление, которое я генерирую на лету и добавляю в тело html) и выполняю. Это работает нормально, я могу просмотреть его в Fiddler, но отладка ужасна. Я вытащил метод, используя что-то вроде:

    $("#makeGrid").click(function (e) {
        $.get('/gridder/basicgrid', callbackFn);
        function callbackFn(data) {
            //Append markup to dom
            $('body').append(data);
            // call the js function from the partialview here 
            generateGrid();
        }
    });

Является ли это наилучшей практикой или нет, я не уверен, но если я «просматриваю исходный код» после команды ajax, код не виден и использует отладчик; Команда, похоже, не работает. Например:

    function generateGrid() {
        alert("start");
        debugger;
        alert("end");
    }

Создает два предупреждения, но не вызывает отладчик, даже если firebug активен. Это обсуждение поднимает аналогичную проблему. Некоторые обходили его, дважды используя отладчик (этот баг должен был исчезнуть) или открыв firebug в новом окне (не повезло). Even eval ('отладчик;'); был предложен кем-то в другой ветке, но ничего хорошего!

Есть предложения? (включая использование инструмента, отличного от firebug, если это необходимо, но я хочу отлаживать, а не использовать стиль fiddler)

1 Ответ

0 голосов
/ 07 октября 2011

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

a) Должен использовать IE в качестве браузера по умолчанию VS.Firefox не любит играть.Если вы используете MVC, селектор браузера по умолчанию не сталкивается с представлениями и т. Д., Как в веб-формах.Быстрое решение состоит в том, чтобы создать пустую HTML-страницу в корневом каталоге и щелкнуть правой кнопкой мыши этого ублюдка, чтобы «просмотреть с помощью ...» и выбрать нужный браузер по умолчанию.Tada.

b) Затем, в расширенных опциях IE, убедитесь, что вы сняли флажок «отключить отладку javascript».

c) Теперь вы можете использовать отладчик;Команда в вашем скрипте в представлении, чтобы прервать выполнение вашего динамически генерируемого скрипта.Он вернется к VS и выделит строку.Поскольку он генерируется, он говорит [динамический скрипт] вверху.Точки останова все еще не работают раздражающе.

d) В IE ошибки js также сообщаются в консоли.Это даст вам номер строки и столбца, выделив ваш файл.Если вы отправили динамическое частичное представление, оно подсвечивает эти координаты в исходном файле страницы, что неприменимо.Скорее, перейдите к эквивалентным координатам на вкладке «скрипт блока [динамический]» VS.

На самом деле это, вероятно, более полезно для разработки MVC, чем то, что предложил бы Firebug.

Cheers

...