2016-07-16 5 views
0

実際に私たちはデータベースで何らかの更新が発生したときに通知音を鳴らします。ブラウザが最小化されたときに30秒ごとにActionMethodをリロードしようとしています。 Chromeではこれは動作しません。asp mvcブラウザを最小化すると30秒ごとにリロードされます

シナリオ:

がブラウザを最小化し、コンピュータがアイドル状態のままにしておきます。クロームはそれを最小化したときが

<script> 

    $(document).ready(function() { 

    setTimeout(function(){ 
    window.location.reload(1); 
    }, 30000); 

    }); 

</script> 

this記事を読んだ後、それはそうです:

方法1:

<meta http-equiv="refresh" content="30;URL=http://example.com/" /> 

方法2

は、私は2つの方法を試してみましたJavascript setIntervalとを設定しますをアイドル状態にすることは、ブラウザのパフォーマンス向上がJavascript間隔の実行に影響するためです。

FluentScheduler、Quartz.NET、またはHangfireのようなスケジュールされたタスクを使用してActionMethodを30秒ごとにリロードすることはできますか?

助けがあれば助かります。

+2

このようなシナリオでは、30秒ごとにポーリングするのではなく、ページに通知を送ることになります。クライアントとサーバの通信にSignalRのようなライブラリを使うことができます – Massanu

+0

@マッサヌー、ありがとう、最後に私はsignalRと一緒に行きました、そしてすべて正常に動作します、[ここ](http://stackoverflow.com/a/38587725/2218697)は私のソリューションです。 – stom

答えて

1

ここではSignalRと完全に一致しています。なぜクライアントが30秒ごとにサーバーに要求を送信したいのですか?これにより、パフォーマンスが低下し、サーバー負荷が増加する可能性があります。

代わりに、私は、SignalRを使用して、アップデートがあるときは常にクライアントに通知することを推奨します。

+0

はい、あなたは正しいですが、私は 'SignalR'を使用して始めましたが、質問や[ここ]で述べているように問題があります(http://stackoverflow.com/questions/22061280/javascript-halts-in-inactive-android -chrome-tab)を使用すると、パフォーマンスが向上します。私たちのクライアントはブラウザを最小限に抑え、 'SignalR'を使ってクライアントに通知し、' JavaScript'関数を呼び出してサウンドを再生しようとすると動作しません。なにか提案を ? – stom

+0

Godddyはいくつかの機能を制限しているので共有ホスティングでは、私は 'SqlDependency'を使うことができませんでしたが、[ここ](http://stackoverflow.com/a/38587725/2218697)は** SqlDependency SignalR **を使用すると、ブラウザが非アクティブまたは最小化されている場合でも動作します。この**は、新しい通知が来たときに部分的な表示**をリロードします。 – stom

+1

@stom - Cool !!それが解決されたことを知ってよかった!! –

関連する問題