FPの副作用

https://medium.com/javascript-scene/master-the-javascript-interview-what-is-a-pure-function-d1c076bec976

共有状態のトラブル
数年前、私は、ユーザーが音楽のアーティストのためのデータベースを検索し、ウェブプレーヤーにアーティストの音楽プレイリストをロードすることができ、アプリケーションに取り組んでいました。これは、Googleのインスタントが上陸した頃、あなたは検索クエリを入力すると、瞬時に検索結果を表示します。AJAXパワードオートコンプリートが突然すべての怒りでした。

唯一の問題は、ユーザーが頻繁にいくつかの奇妙なバグを引き起こし返すことができるAPIのオートコンプリートの検索応答、より速く入力することでした。これは、新しい提案が時代遅れの提案に置き換えられます競合状態を、トリガでしょう。

なぜそれが起こったのか?各AJAXの成功ハンドラが直接ユーザーに表示された候補リストを更新するためのアクセス権を与えられていたので。最も遅いAJAX要求は常にそれらの置き換えの結果は、新しいされている可能性があり場合でも、やみくもに結果を置き換えることにより、ユーザの注意を勝ちます。

クエリ候補の状態を管理するために、真実の単一のソース - 問題を解決するには、私が提案マネージャを作成しました。これは、現在保留中のAJAX要求を認識し、ユーザーが新しい何かを入力したときに、新しい要求が発行される前に、一度に単一の応答ハンドラーがこれまでUIの状態をトリガーすることができるだろうので、保留中のAJAXリクエストは、キャンセルされるだろう更新。

おすすめ

転載: www.cnblogs.com/byxxw/p/11388886.html