[英]Caching selectors in objects using jQuery
我今天正在写一些简单的UI东西,并且只能在项目中使用jQuery,没有Backbone,KnockoutJS等。
所以,基本上我写了一些看起来像这样的对象...
var UI = UI || {};
UI.login = (function($){
function Welcome(){
this.firstName = $("#firstName");
this.lastName = $("#lastName");
this.email = $("#email");
this.password = $("#password");
this.message = $("#message");
this.init();
}
Welcome.prototype.init = function(){
this.email.bind('blur', $.proxy(this.checkEmail, this));
// etc..etc...
};
Welcome.prototype.checkEmail = function(event){
var email = $(event.currentTarget).val();
if(!checkEmail(email)){
this.message.html('This email is invalid.')
.show();
}
};
function checkEmail(email){
// do dome validation
return isValid;
}
// etc.. etc...
return Welcome;
}(jQuery))
我的问题是...将这些选择器缓存在Welcome构造器中是好还是坏的主意? 另外,我想也许只是对此模式有一些反馈...
谢谢!
如果您在整个程序中都重复使用它们,那很好。 我以前做过很多次。 优点是您不必为节省选择时间而重新选择那些选择器; 但是, 最好在jQuery中链接方法 (或者,我已经读过……IMO的区别不大,如果要牺牲代码质量,那么您应该始终在性能上进行最后优化)。 这部分是因为您通过创建可能使用或可能不使用的jQuery对象而受到欢迎。
还需要注意的一件事是,使用局部变量可以使性能有所提高,但是通常保存要使用的这些jQuery对象要比非局部变量命中更好。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.