私は最近、独自のカスタム効果を作成するために、setInterval と clearInterval を使って多くの実験を行っています。私が取り組んでいることの 1 つは、グローバル スコープの外にとどまりながら間隔をクリアする効率的な方法です。.promise() を使用して clearInterval() を呼び出すことで、読みやすさを改善し、パフォーマンスの向上の可能性を探っています (以下は、私がやろうとしていることの例です)。
//caller is a collection of elements
function performEffect(caller) {
var interval = setInterval(function() { caller.next(); }, 500);
caller.promise().done(function() { interval = clearInterval(interval); });
}
最近まで、組み込み関数を使用して間隔を設定およびクリアしていました (例):
function performEffect(caller) {
var interval;
var count = 0;
var len = caller.length;
if (count >= len) {
interval = clearInterval(interval);
}
var tmr = function () {
interval = setInterval(function () { effectFunciton(count++); }, 100);
}
}
PS オリジナルを投稿できなくて申し訳ありません。バージョン管理システムが破損していました。また、for ループや .each() を簡単に使用できるため、この例がばかげていることはわかっていますが、これは単なる例です。ループを使用したくない場合もあります。
これは私の最初の投稿なので、受け入れられている慣習とは異なることをする場合は、事前にお詫び申し上げます。今後投稿を改善するためにできることがあれば教えてください - 私はいつでも建設的な批判を受け入れます :)
ありがとう!