У нас есть приложение ASP.NET, и при работе на клиентском сайте они часто получают нулевые ошибки Javascript. Как и во всех этих ошибках, информация IE6 отображается менее полезной. Но проблема в том, что как только я установлю отладчик IE-скрипта и попытаюсь отладить немного больше, ошибка будет невоспроизводимой. Когда отладчик сценариев не установлен, ошибка снова возникает. Существуют ли какие-либо другие инструменты, которые могут быть полезны для отладки javascript на клиентском сайте. Ошибка также не создается с помощью IE7 или Firefox.Самая сложная проблема отладки javascript когда-либо
ответ
Вы хотя бы знаете, какой объект является нулевым? Вы знаете, что такое линия?
Если нет, вы можете начать с комментария кода, пока проблема не исчезнет. Затем начните возвращать его до тех пор, пока проблема не появится снова.
alert() - твой друг. Try/catch - с предупреждениями об исключениях - может быть и вашим другом.
Загрузка его с помощью firebug в firefox может помочь - даже если на Firefox нет ошибки, firebug может дать вам некоторые полезные данные, особенно если вы можете сузить линию или объект, у которого есть проблема. В том же ключе отладчик IE-скрипта может предоставить вам полезную информацию, даже если ошибка не возникает.
Является ли код запутанным? Возникает ли проблема, когда она не запутывается?
Можете ли вы скопировать источник в локальный файл и играть с кодом без привлечения сервера? Это ускорит эксперименты, которые вы собираетесь делать много.
Heisenbugs действительно сосут. Я согласен с jsight, что ошибки, вероятно, вызваны некоторым состоянием гонки; т. е. вы пытаетесь получить доступ к элементам страницы, которые еще не существуют.
Я согласен, что это звучит как состояние гонки. Просто трудно найти. – Craig
У вас установлена Visual Studio?
Если это так, включите отладку скриптов в IE, как и для отладчика сценария.
Добавить строку в JavaScript, как ...
debugger;
затем запустить страницу. Вы должны увидеть диалоговое окно с просьбой начать отладку. Выберите новый экземпляр VS и пройдите через код, чтобы увидеть, где происходит ошибка.
Вы попробовали Firebug Lite? Это дает вам множество возможностей Firebug через bookmarklet. Я не уверен, что это поможет самим сценариям, но это позволит вам просматривать загруженные скрипты и DOM.
Companion.JS также может оказаться полезным, поскольку он дает вам немного лучшую помощь отладке скриптов, чем IE.
Проверьте свой код с помощью jslint - IE6 часто путешествует по незначительным синтаксическим ошибкам, которые прощает Firefox.
Каждый ответ на каждый вопрос отладки JavaScript должен начинаться с вышеизложенного. «Если ваш код не проверяется с помощью JSLint, вернитесь, когда он это сделает». –
Для тех, кому это важно, я нашел проблему. Это была ошибка в .NET, которая противоречила ASP.NET Ajax. Он был исправлен в .NET 2.0 sp1, который, как оказалось, не был установлен, но как только я установил его, все проблемы ушли.
Возможно, манипулирование DOM перед DOM не полностью загружено (onload или какой-либо эквивалент для обнаружения завершения додела не выполнено)? По моему опыту, это наиболее вероятная причина странных ошибок dom в IE (6 и 7). – jsight
jsight вы должны перенести это на ответ, чтобы я мог его проголосовать. – UnkwnTech
Вместо отладчика сценария IE попробуйте отладчик Visual Studio или Visual Studio Express (http://www.berniecode.com/blog/2007/03/08/how-to-debug-javascript-with-visual-web- разработчик-экспресс /). Возможно, вам повезет больше. – outis