这个问题部分依赖于jQuery内部工作的知识。jQuery风格重新应用效率
说我有一个垂直型溢出一个页面,允许用户向下滚动,下面的代码位在我的JS:
$(document).scroll(function() {
var y = $(document).scrollTop();
if (y > 500) {
$("body").css("background-color", "red");
}
else {
$("body").css("background-color", "blue");
}
});
这工作完全正常。但是,它可以这样修改:
var isRed = false;
$(document).scroll(function() {
var y = $(document).scrollTop();
if (y > 500) {
if (!isRed) {
$("body").css("background-color", "red");
isRed = true;
}
}
else {
if (isRed) {
$("body").css("background-color", "blue");
isRed = false;
}
}
});
是否有理由选择第一个代码的第二位?如果我使用第一部分代码,那么每次滚动事件触发时,jQuery是否会一遍又一遍地应用样式?
我习惯了React的工作方式,只更新每个渲染改变的东西。 jQuery是否包含这样的功能?
这两段代码完成同样的事情。额外的isRed
条件使得代码的第二版本更加冗长和复杂,但它可能会大大提高效率。它是否提供这样的好处?如果是这样,那么使用它而不是第一个是有意义的。