Может ли Firebug потребоваться для запуска моего веб-сайта?
-
06-07-2019 - |
Вопрос
Я работаю над новым проектом, который использует несколько сложный javascript.Я не могу опубликовать какой-либо код, так что мой вопрос не об этом.
У меня есть скрипт, который работает в Firefox 3.0
.Было указано, что сценарий не работал в Firefox 3.5
, так что я пытаюсь заставить это сработать.Действительно, скрипт не дал ожидаемых результатов, поэтому я установил последнюю версию Firebug
, включил console
и обновил страницу.
И надо же, это сработало.
Никаких ошибок, никаких предупреждений.
Поэтому я отключил консоль, и тогда она больше не работала...
Что здесь происходит?Консоль Firebug каким-то образом меняет что-то в Firefox, что заставляет мой скрипт работать?Есть какие-нибудь советы относительно того, что делать дальше? (помимо просьбы будущих посетителей установить Firebug ...)
Решение
Может ли быть что-то столь же простое, как забыть прокомментировать вызов console.log ()
где-нибудь в вашем javascript?
Если у вас есть висячие ссылки, а у пользователя не установлен Firebug, вы получите ошибку времени выполнения, которая остановит выполнение скрипта.
Другие советы
Мне кажется, есть вероятность, что у вас проблема с потоками, и FireBug анализирует и, возможно, замедляет работу одного из потоков, чтобы у него было время завершить работу до того, как будет решен следующий шаг.
Возможно, вы используете ajax, и что-то ждет этого ответа?Или, возможно, вы делаете что-то во время или после загрузки объекта, который зависит от чего-то еще в DOM?
Обновить:Для тех, кто натыкается на это сейчас, "потоки" в JavaScript действительно существуют только в абстракции (веб-работники и т.д.).Я неправильно использовал этот термин.Я действительно думал об асинхронном действии, которое возвращалось до того, как другое было готово.
Проверьте в своем коде console.log (), console.debug (). При вызове методов объектов window.console выдается ошибка, если консоль не определена (как и ожидалось).
В большинстве случаев вы можете легко удалить или прокомментировать эти строки.
Я написал простую оболочку для firebug (я просто использую отладку, но она должна дать вам то, что вам нужно для дублирования других методов), которая пишет только тогда, когда консоль есть, поэтому я могу использовать firebug, не нужно комментировать мои утверждения отладки, и это не нарушает сайты для людей без него.
Если вы используете этот код, то используйте fbconsole.debug вместо console.debug, у вас никогда не возникнет этой проблемы:
function fbconsole () {
this.debug = function (val) {
if(typeof(console) !== 'undefined' && console != null) {
console.debug(val);
}
}
}
var fbconsole = new fbconsole();