基本上,我们有一个大量的core.js
文件,其中很多的jQuery调用没有任何结构。例如:
$(document).ready(function() {
$(document).on({
change: function() {
// some code specific to 1 view
}
},
"#some-id-name-that-may-exist-in-multiple-views" // like "bank-box"
});
// This code isn't even inside a closure, so it get's executed in all views but '.metadata' only exist in one, braking the whole system.
checkProgress($.parseJSON($('.metadata').text()));
现在,正如评论所说的那样,之前已经发生过系统的整个部分因为JS代码的共享而导致的JS错误而中断的情况。 (具有讽刺意味的是,由于共享所述代码,持续集成因为仅有1%的代码经过测试而被捕获)
如何证明使用保存视图特定逻辑的单独JS文件,而不是因为&#34而存在的大量core.js
;浏览器会在第一次加载时缓存所有JS #34;论点。欢迎任何资源或链接。
另一方面,也许多个文件是一个不正确的方法,我们需要有1个core.js
文件,但代码应该采用不同的方式,这样它就不会像正确的那样发生冲突现在。如果是这种情况,那么如何。
答案 0 :(得分:0)
您可以先检查您正在处理的元素是否存在。您可以像这样重写这段代码:
if( $(".metadata").length ){
checkProgress($.parseJSON($('.metadata').text()));
}// if $(".metadata").length