0

データベースから新しいアイテムを取得し、ユーザーに時々通知するニュースフィードスクリプトがあります。問題は、履歴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.解決策は、バックグラウンドで静かに実行したままにしておくのと同じように、軽くする必要があります。

4

0 に答える 0