JavaScript - 連携メニューの同期期限切れ問題
我想大声告诉你
我想大声告诉你 2017-05-18 10:58:31
0
1
532

今日、無限連携メニューを実装している記事を拝見しましたが、データの有効期限について作者が理解していなかったことがわかりました;

  • 考えやすいのは、非同期有効期限の問題です。第 1 レベルのメニューが変更され、第 2 レベルのメニュー コンテンツのプルがトリガーされるが、ネットワーク速度が遅く、プロセスに時間がかかると想像してください。 3秒。 1 秒後、ユーザーは第 1 レベルのメニューを再度変更し、第 2 レベルのメニューのコンテンツのプルを再びトリガーします。このとき、ネットワーク速度は速くなり、データは 1 秒後に返され、第 2 レベルのメニューはレベルのメニューが再レンダリングされますが、1 秒後に第 1 レベルのメニューが再レンダリングされます。このリクエストの結果が返され、第 2 レベルのメニューが再度レンダリングされます。ただし、実際には、第 1 レベルのメニューはそれ以来変更されており、コンテンツの有効期限が切れています。このレンダリングは間違っています。クロージャを使用してデータの有効期限チェックを実行できます。

  • 考えにくいのは、同期有効期限の問題です (実際には非同期でもありますが、IO 対話がなければ、バッファー時間が 0 のタイムアウト関数です)。イベント キューが存在するため、注意しないと発生する可能性があり、有効期限が切れると、コード内に関連するコメントが表示されます。

最初の有効期限の理由はわかりますか? 2 番目の有効期限の理由は何ですか?どうやってそうなった?

我想大声告诉你
我想大声告诉你

全員に返信(1)
淡淡烟草味

作者が言っているように、バッファ時間0のタイムアウト関数です。第 1 レベルのメニューから第 2 レベルのメニューへの更新が setTimeout() 関数に記述されている場合、それは非同期操作となり、後続の操作が最初にインターフェイスを更新し、前の操作の結果が期限切れになることもあります。 。

いいねを押す +0
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート