如何证明将多个JS文件用于特定于视图的过程

时间:2017-01-13 15:45:19

标签: javascript architecture

基本上,我们有一个大量的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文件,但代码应该采用不同的方式,这样它就不会像正确的那样发生冲突现在。如果是这种情况,那么如何。

1 个答案:

答案 0 :(得分:0)

您可以先检查您正在处理的元素是否存在。您可以像这样重写这段代码:

if( $(".metadata").length ){
  checkProgress($.parseJSON($('.metadata').text()));
}// if $(".metadata").length