ami*_*mik 9 jquery sentry raven
我在Sentry中遇到很多错误,说"ReferenceError:jQuery未定义",但与页面加载总数相比,它仍然很少发生.
<script src="/js/compiled/jquery.min-2fe08f7.js" defer></script>
<script src="/js/my-script-e6f35a4.js" defer></script>
Run Code Online (Sandbox Code Playgroud)
my-script.js的位置如下:
(function($) {
$('h1').text('Hello world');
})(jQuery);
Run Code Online (Sandbox Code Playgroud)
但是我从Sentry报告中找不到为什么没有加载jQuery的线索.
Sentry面包屑中给出的唯一线索是无用的:
12:15:25 sentry ReferenceError: jQuery is not defined
12:15:25 sentry ReferenceError: jQuery is not defined
12:15:26 exception ReferenceError: jQuery is not defined
Run Code Online (Sandbox Code Playgroud)
延迟脚本应按它们在文档中的顺序加载,因此我不认为问题出在异步加载中.
也许jQuery文件在一些慢速设备上加载超时?或者某个时刻服务器上的文件不可用?
这种情况发生在各种JS文件中,也有各种依赖项,而不仅仅是jQuery.任何人都可以告诉我如何正确解决这样的问题,或者至少获得完整的控制台输出到Sentry,包括失败的HTTP子请求到资源,如JS文件,找出实际原因是什么?
提前致谢.
小智 0
您希望将代码包装在事件处理程序中,该事件处理程序仅在整个 DOM 准备就绪后才触发,以便保证在加载所有延迟脚本后运行。
通常,如果 jQuery 可用,这将是一个$(document).ready()调用,但由于不能保证这一点,我建议在您的my-script.js文件中执行类似的操作
document.addEventListener("DOMContentLoaded", function(event) {
(function($) {
$('h1').text('Hello world');
})(jQuery);
});
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
415 次 |
| 最近记录: |