我在单独的.js文件中有一堆js片段。 gulp设置为将它们连接到一个all.js
。建议采用以下哪种方法?
将每个js代码段分开放在$(document).ready
:
//all.js
$(document).ready(function(){
foo...
})
$(document).ready(function(){
bar...
})
将所有代码段放在一个$(document).ready
中:
//all.js
$(document).ready(function(){
foo...
bar...
})
答案 0 :(得分:1)
这实际上只是编码方便或个人风格偏好的问题。两者都可以正常工作并且工作方式相同。
使用$(document).ready()
注册的回调函数按其注册顺序调用,因此即使订单也是相同的。
两种方法之间的性能差异可能很小,与其他事情相比,你无法测量它,因为只需要几个额外级别的函数调用就可以使用两个单独的.ready()
调用。如果你可以衡量差异,我会感到惊讶,如果这种差异实际上是相关的,那就更加惊讶了。您更有可能使用其他代码结构原因来决定走哪条路。
如果你想要调用的两个函数都方便地在同一个文件中,那么这将导致更紧凑的代码:
$(document).ready(function(){
foo(...)
bar(...)
});
如果两个函数分别维护和/或在不同的文件中维护,那么这将更方便地适合您的代码布局,并允许您保持独立的模块彼此独立:
// one place in your code
$(document).ready(function(){
foo(...)
});
// somewhere else in your code
$(document).ready(function(){
bar(...)
});
在您的特定情况下,您指的是连接在一起的多个文件。这意味着您可以使用任一格式。如果这些多个文件是可能并非全部一起使用的模块,那么您可能希望每个文件“独立存在”。如果是这种情况,那么使用第二个模型,因为文件彼此独立,任何给定的文件都可以单独使用。如果不存在这样的依赖性,那么在两个文件之间不创建依赖关系会有一个优势。
另一方面,如果两个文件已经相互依赖,并且两个文件必须在任何项目中一起使用,那么尝试保持任何独立性没有任何优势,因此你可以使用任何一种风格。< / p>
请记住,为了在将来的项目中重用或共享最佳代码,测试独立性和最简单的可维护性,使单独的文件/模块尽可能独立是有用的。
答案 1 :(得分:1)
从语义上讲,这两种方法是相同的。但是,有几点需要注意。