Javascript - 要结合或不结合,这就是问题

Cha*_*ell 10 javascript jquery minify

好的,所以我知道为了提高效率,将所有页面Javascript组合到一个外部文件中显而易见,但这不是问题.

假设我有一个Default.htm,其搜索字段附加了一些Javascript魔法.然后我将Contact.htm与一个附有Javascript魔法的联系表单联系起来.最后我有一个FAQ.htm,其中有一些jQuery面板显示答案......你得到了图片.

基本上我有三个页面都有"一些"javascript需要,但没有任何Javascript用于任何其他页面.

将所有Javascript组合成一个加载一次的大型缩小文件然后存储在Cache中是否更好,或者最好在默认页面上使用单个Javascript文件,但不要在联系页面上使用它...等等?

什么在这种情况下最有效?

选项1

Default.htm
jquery.js
default.js

Contact.htm
jquery.js
contact.js

Faq.htm
jquery.js
faq.js

选项:2

Default.htm
jquery-default-contact-faq-min.js

Contact.htm
jquery-default-contact-faq-min.js

Faq.htm
jquery-default-contact-faq-min.js

PS:对于你所有的asp.net家伙,我正在使用Combres来合并,缩小和版本我的Javascript文件

Chr*_*ald 3

我肯定会投票将它们结合起来。如果您担心“未使用”Javascript 的解析或设置时间,那么我建议您使用闭包中的每个文件来构建 Javascript,然后在您需要的页面上运行您需要的闭包。例如:

// File 1
window.closures = window.closures || {}
window.closures["page1"] = (function() {
  // Javascript for Page 1
});

// File 2
window.closures = window.closures || {}
window.closures["page2"] = (function() {
  // Javascript for Page 2
});    

// File 3
window.closures = window.closures || {}
window.closures["page2"] = (function() {
  // Javascript for Page 2
});
Run Code Online (Sandbox Code Playgroud)

然后,在您的页面中:

<!-- This one combined.js file will be downloaded once and cached //-->
<script type="text/javascript" src="combined.js"></script>
<script>
  // Run the Javascript in your combined.js intended for page2
  window.closures["page2"]()
</script>
Run Code Online (Sandbox Code Playgroud)