好的,所以我知道,为了效率,将所有页面的
Javascript都合并到一个外部文件中是很明显的,但这不是问题.
说我的Default.htm与一个搜索字段,附有一点Javascript魔术.然后我联系了一个联系表单,其中附有一些Javascript魔术.最后我有一个FAQ.htm与一些jQuery面板显示答案…你得到的图片.
基本上我有三个页面都有“一些”的JavaScript需要,但没有一个JavaScript在任何其他页面上使用.
最好将所有这些JavaScript组合到一个加载一次的大型最小化文件中,然后存储在缓存中,或者最好在默认页面上使用单个Javascript文件,但不能在联系人页面上使用…等等?
在这种情况下最有效的方法?
选项1
Default.htm
jquery.js
default.jsContact.htm
jquery.js
contact.jsFaq.htm
jquery.js
faq.js
选项:2
Default.htm
jquery-default-contact-faq-min.jsContact.htm
jquery-default-contact-faq-min.jsFaq.htm
jquery-default-contact-faq-min.js
PS:对于所有的asp.net,我正在使用Combres来组合,缩小和版本我的Javascript文件
解决方法
我一定会投票结合他们.如果您关心“未使用”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 });
然后,在您的页面中:
<!-- 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>