我知道有第三方解决方案来加载所需的js文件,例如requirejs,但在我的项目中,我无法做到。
我的许多脚本都有以下设计模式,现在使用后端框架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();
例如,如果我将所有脚本连接起来,那么即使其内容在DOM中不存在,也会执行所有$(function(){})
。当然,这会导致一些性能受到影响吗?
处理此问题的正确方法是在需要它的实际模板文件中有<script> var f = new Forms(); </script>
吗?
注意:我无法使用requirejs等第三方解决方案