什么可能导致浏览器中间歇性的ReferenceError / TypeError背后的原因?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了什么可能导致浏览器中间歇性的ReferenceError / TypeError背后的原因?相关的知识,希望对你有一定的参考价值。

我们有一个Web应用程序,可以呈现html页面,并包含一些外部javascript文件,这些文件定义了jQuery$app等变量。

我们在Bugsnag中跟踪客户端JavaScript错误,有时我们会收到Uncaught ReferenceError: $ is not definedReferenceError: Can't find variable: app等错误。

这背后可能是什么原因?我可以猜到的两个是:用户可能在浏览器中点击了“停止”并且JS文件没有完全加载但是页面内的内联JavaScript仍然执行(可能吗?),或者某些JavaScript文件被浏览器插件阻止/延期。

我们观察到它发生在所有主流浏览器(Firefox / Chrome / Safari等)中,但它的发生非常罕见 - 通常在数千个请求中出现一次。

以下是摘录自页面:

<script src="https://path/to/jquery.js"></script>
<script src="/path/to/app.js"></script>
<script type="text/javascript">
  $(document).ready(function() { ... });
  // ^^^^ I receive the error here
  app.init(function() { ... });
  // ^^^^ and sometimes I receive the error here
</script>
答案

一个合理的解释是某些浏览器扩展阻止加载这些脚本(例如,广告拦截器)。

以上是关于什么可能导致浏览器中间歇性的ReferenceError / TypeError背后的原因?的主要内容,如果未能解决你的问题,请参考以下文章

什么可能导致 IIS 接收 HTTP 动词“2GET”

Annotatorjs 导致 Mathjax 间歇性失败

Amazon S3 CORS 错误

【翻译】JMV GC 停顿时间过长问题排查

什么会导致间歇性 ORA-12519(TNS:未找到合适的处理程序)错误

什么会导致间歇性 SQLSTATE[HY000] [2002] Debian Lenny 上的 php PDO mysql 没有此类文件或目录错误? [复制]