JavaScript连接,加载许多不需要的东西?
我知道有第三方解决方案可以加载所需的js文件,比如requirejs,但在我的项目中,我无法加载JavaScript连接,加载许多不需要的东西?,javascript,jquery,Javascript,Jquery,我知道有第三方解决方案可以加载所需的js文件,比如requirejs,但在我的项目中,我无法加载 我的许多脚本都有以下设计模式,现在使用后端框架Magento将这些脚本加载到相应的页面上。但是,我打算将所有脚本连接到一个文件中,这让我想知道,用不存在的元素加载所有这些事件的代价是什么: var Forms = (function($){ var Forms = function(){ var context = this; $(function(){
我的许多脚本都有以下设计模式,现在使用后端框架Magento将这些脚本加载到相应的页面上。但是,我打算将所有脚本连接到一个文件中,这让我想知道,用不存在的元素加载所有这些事件的代价是什么:
var Forms = (function($){
var Forms = function(){
var context = this;
$(function(){
//Jquery Validate for newsletter form
context.newsletter_validate_detail = $( "#newsletter-validate-detail" ).validate({
errorClass: 'form-error',
errorElement: 'div',
rules: {
email: {
required: true,
email:true
},
gender: {
required: true
},
'required': {
required: true
}
},
messages: {
gender: "Please select something"
}
});
});
};
Forms.prototype.getForm = function(id){
return this[id];
};
return Forms;
})(jQuery);
var test = new Forms();
例如,如果将所有脚本连接在一起,则所有$(function(){})
都将执行,即使其内容在DOM中不存在。当然,这将导致一些性能下降
处理此问题的正确方法是使用var f=new Forms()代码>在实际模板文件中需要它吗
注意:我无法使用第三方解决方案,如requirejsvar Forms=new Forms()代码>我见过的最好的JS行:)“我打算将所有脚本连接到一个文件中”不包括该页面上不需要的脚本。就这么简单。为什么要下载额外的字节?这是一个单页的应用程序吗?哈哈,我只是很快写下来作为例子。我想知道,浏览器是否保留脚本文档的缓存?我想是的。也许这是对这个想法的支持?另一方面,你测量过了吗?在页面加载时,让jQuery搜索几个不存在的元素是否缓慢?类似于$(“#时事通讯验证详细信息”)
的功能非常快。不要根据直觉进行优化。