データベースから新しいアイテムを取得し、ユーザーに時々通知するニュースフィードスクリプトがあります。問題は、履歴APIスクリプトもあるため、ユーザーがホームページ(ニュースフィードがある場所)から移動しても機能が実行されていることです。サーバーに問題があります。そのため、間隔をハンドラーとして設定し、ページのURLがホームページ用でない場合はそれをクリアすると思いました。
var currentUrl = $(location).attr('pathname');
var url = currentUrl.replace('/', '');
var handle=self.setInterval(function(){newsCheck()},1000); //set up interval handler for cancellation when not on home page
if (url != 'Home' ){ //timeout newsCheck
handle = window.clearInterval(handle);
}
ただし、間隔がクリアされることはないため、これは機能しません。ああ、それはDOM対応で実行されていると言うべきです、それと関係があるかもしれません。
url
履歴があるため、変数が変更されずに関数が続行されるたびに、APIスクリプトがこのニュースフィードスクリプトを再実行しないと考えています。clearInterval
それを回避する明白な方法は、履歴apiスクリプトに入れることですが、もちろん変数と関数はそこにありません。
私はこれを回避する必要がありましたが、
1.もうajaxリクエストを実行したくありません。すでに十分な数があります。
2.解決策は、バックグラウンドで静かに実行したままにしておくのと同じように、軽くする必要があります。