Firefox 'Ошибка загрузки скрипта' при загрузке Google Analytics в FF2

В проекте, над которым я работаю, используется обработчик событий window.onerror для сообщения о проблемах пользователей. Я заметил одного пользователя, который просто не может загрузить скрипт Google Analytics. Наш сайт не видит большого трафика, поэтому я не уверен, насколько это распространено, но пока похоже, что это влияет только на одного пользователя.

Его пользовательский агент: «Mozilla / 5.0 (Windows; U; Windows NT 5.1; en-US; rv: 1.8.1.17) Gecko / 20080829 Firefox / 2.0.0.17» .
Firefox выдает следующее сообщение об ошибке: «Ошибка загрузки скрипта».

Дополнительное примечание: сайт ссылается на несколько других файлов javascript. Однако ссылка на аналитику - единственная ссылка на внешний домен и единственная ссылка на скрипт внизу страницы, непосредственно перед закрывающим тегом тела.

Кто-нибудь еще сталкивался с этим или есть идеи, в чем может быть проблема? Спасибо!

Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
13
0
5 127
5

Ответы 5

Это довольно случайное предположение, но мне интересно, использует ли пользователь надстройку, такую ​​как NoScript, для управления выполнением сценария и не разрешает запуск сценариев из Google Analytics. Я знаю, что это возможно, потому что это то, что я делаю :) Я не знаю, будет ли это отображаться как ошибка, которую вы видите.

У меня есть сайт с более чем 80 страницами, на которых используется перехват ошибок JavaScript. Мой сайт обслуживает более 2000 страниц в день, и я получаю около десяти ошибок сценария «Ошибка загрузки скрипта» каждый день из браузеров Firefox. Меня это начинает сильно раздражать, и я убеждаюсь, что это проблема Firefox.

Я могу отказаться от предложения NOSCRIPT, потому что скрипт загружается в заголовок моих страниц, где нет тегов NOSCRIPT.

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

Я тщательно проверил каждый файл библиотеки и веб-страницу с помощью JavaScript Lint и обнаружил ошибки сценариев и сомнительные методы написания сценариев. Все эти проблемы были исправлены, но это не помогло решить проблему «Ошибка загрузки скрипта».

Мои страницы загружают несколько файлов библиотеки JavaScript, у которых нет этой проблемы, и единственная разница заключается в размере файлов. Размер большинства файлов меньше 5 КБ, но размер проблемного файла составляет 17 КБ.

Мог ли размер файла библиотеки быть проблемой?

Ааа!

Я уверен, что это давно решено ... но для всех, кто наткнется на эту страницу: эта ошибка вызывается firefox, когда внешний скрипт не загружается (легко найти код, который запускает это, в исходном коде). Мы отлавливали эти ошибки на нашем сайте, и оказалось, что мы возвращали 404 для скрипта, поэтому я предлагаю посмотреть ваши журналы как один из возможных источников этой ошибки.

Эта проблема возникает при выходе из страницы в Firefox до завершения загрузки всех скриптов. Поэтому я предполагаю, что игнорировать ошибку можно безопасно.

Вы не видите эту ошибку в консоли ошибок Firefox, но вы можете сделать ее видимой, привязав предупреждение к событию window.onerror. Тогда вы сможете увидеть окно предупреждения в течение небольшого промежутка времени и получить следующую ошибку в консоли ошибок:

[11:35:57.428] uncaught exception: [Exception... "prompt aborted by user"  nsresult: "0x80040111 (NS_ERROR_NOT_AVAILABLE)"  location: "JS frame :: resource:///components/nsPrompter.js :: openTabPrompt :: line 462"  data: no]

Я использую следующую проверку, чтобы игнорировать эту ошибку в моем обработчике ошибок:

if (navigator.userAgent.search('Firefox') != -1 && message === 'Error loading script') {
    // Firefox generates this error when leaving a page before all scripts have finished loading
    return;
}

Для тех, кто может использовать Airbrake / Hoptoad, могут быть полезны комментарии службы поддержки Airbrake: Переопределение Hoptoad.notify, Бета-код для фильтрации ошибок

Sarge 11.03.2012 19:05

@rampr Я не думаю, что полностью игнорировать их все. Но до сих пор у меня было много ошибок «Ошибка загрузки скрипта» и за ними не было ни одной реальной проблемы, поэтому я предпочитаю их игнорировать.

Karl Bartel 04.05.2012 17:43

У нас была такая же проблема, и после изучения наших журналов CDN мы обнаружили, что Firefox запускает событие onerror, когда скрипт возвращается с HTTP-статусом «304 Not Modified», поэтому происходит попадание в кеш. Фактически, Firefox (протестированный с Firefox 12 на момент написания этой статьи), похоже, запускает событие onerror для всех статусов HTTP, кроме «200 Ok». В нашем эксперименте другие браузеры вели себя иначе: Chrome (19) вызывал ошибку только при запросе «407 Proxy Authentication Required», а Opera (12) - на 100, 101, 204, 4xx и 5xx.

Другие вопросы по теме