この質問は、一部は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;
}
}
});
最初のコードよりも2番目のコードを選択する理由はありますか?私はコードの最初のビットを使用していましたが、jQueryはスクロールイベントが発生するたびにスタイルを繰り返し適用しますか?
私はReactの仕組みに慣れており、すべてのレンダリングで変化するものだけを更新しています。 jQueryにはこのような機能が含まれていますか?
両方のコードで同じことが達成されます。追加のisRed
条件は、コードの第2バージョンをより冗長で複雑にしますが、効率を大幅に向上させる可能性があります。そのような利点を提供していますか?もしそうなら、最初のものの代わりにそれを使うのは意味があります。