jsで関数アンチシェイクとスロットルを実装する方法

藏色散人
リリース: 2020-05-24 13:34:49
転載
2289 人が閲覧しました

概念的な理解

アンチシェイク: イベントがトリガーされてから n 秒後にコールバックを実行します。この n 秒以内に再度トリガーされた場合は、時間を再開します。

スロットリング: この機能は単位時間内に 1 回だけトリガーできると規定されています。この単位時間内に関数が複数回トリガーされた場合、有効になるのは 1 つだけです。

関連する推奨事項: 「javascript 上級チュートリアル

JS 関数の手ぶれ補正とスロットリングの違い:

関数手ぶれ補正は一定時間内に 1 回のみ実行されますが、機能スロットリングは一定間隔で実行されます。

個人的な落とし穴

1. 関数のアンチシェイクと関数のスロットリングの概念を理解した後、クロージャーを使用して関数のアンチシェイクとスロットリングを実装する場合、考慮されていませんでした。スロットルの場合、ユーザーが次のリクエストの前に入力を完了したが、この時点で別のリクエストを行わない場合、最後に入力したテキストがリクエストを送信せずに他のイベントによって変更されます。つまり、リクエストが失われます。そのため、setTimeout 関数を追加する必要があります。また、リクエストを準備するたびに、リクエストが送信されたかどうかを示すフラグを設定します。リクエストが通常のサイクルで送信された場合は、それを true に変更します。それ以外の場合は、フラグを設定します。 false. setTimeout を使用します. setTimeout を残りのイベントより少し長くして優先させます. スロットル タイマー リクエスト;

2. アロー関数を使用する場合、これを保存する必要はありません。

コード実装

うわー

以上がjsで関数アンチシェイクとスロットルを実装する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
js
ソース:cnblogs.com
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!