Может ли Firebug потребоваться для запуска моего веб-сайта?

StackOverflow https://stackoverflow.com/questions/1412897

Вопрос

Я работаю над новым проектом, который использует несколько сложный 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();
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top