ホームページ >ウェブフロントエンド >jsチュートリアル >タイマーをクリアする際に遭遇する落とし穴を AngualrJs が解決する方法

タイマーをクリアする際に遭遇する落とし穴を AngualrJs が解決する方法

小云云
小云云オリジナル
2018-01-29 10:55:271348ブラウズ

この記事では、AngualrJ のタイマークリアで遭遇する落とし穴を中心に紹介しますので、困っている方は参考にしていただければ幸いです。

今日、カスタム命令に設定されたタイマーが、ページがジャンプした後も別のページで実行されているという奇妙な問題を発見しました。これは絶対に不可能であり、システムのパフォーマンスに影響します。

Angularのネイティブメソッドwindow.onunloadを使用しましたが、機能しなかったので、Angular独自のメソッド$destroyを使用する必要がありました。ページがジャンプしたり、DOM構造が変更されたときにタイマーをクリアできます


      var timer = setInterval(function(){
          $scope.$apply(function(){
            //这里是想要定时刷新的逻辑
          });
        },3000);
        $scope.$on('$destroy',function(){
          if (timer) {
            clearInterval(timer);
            timer = null;
          }
        });

こちら ちなみに、JavaScriptではネイティブのsetTimeout()以及setInterval()函数,所以清除时对应是clearTimeout()clearInterval(),angular定时器是$timeOut$interval,所以清除对应是$timeOut.cancel()$interval.cancel()

を使っているので、1対1に対応させないと矛盾が解消されません。

関連する推奨事項:

プログレスバー機能を実装するためのJavaScriptタイマー

以上がタイマーをクリアする際に遭遇する落とし穴を AngualrJs が解決する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。