2016-07-16 2 views
0

실제로 일부 업데이트가 데이터베이스에서 발생하면 알림 사운드가 재생되므로 브라우저가 최소화되어있을 때마다 ActionMethod을 다시로드하려고합니다. Chrome에서는이 기능이 작동하지 않습니다.브라우저가 최소화 될 때마다 매 30 초마다 asp mvc reload 페이지가 표시됩니다.

시나리오 :

브라우저를 최소화하고 컴퓨터의 유휴 둡니다. 크롬을 최소화 될 때이

<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

나는 두 가지 방법을 시도 Javascript setInterval 및을 설정합니다. 브라우저 성능 향상이 Javascript 간격의 실행에 영향을주기 때문에을 유휴 상태로 만듭니다.

FluentScheduler, Quartz.NET 또는 Hangfire와 같은 예약 된 작업을 사용하여 30 초마다 ActionMethod을 다시로드 할 수 있습니까?

도움이 될 것입니다.

+2

그런 시나리오의 경우 매 30 초마다 폴링 대신 페이지로 알림을 보냅니다. 클라이언트 - 서버 통신을 위해 SignalR과 같은 라이브러리를 사용할 수 있습니다. – Massanu

+0

@Massanu, 감사합니다. 마침내 signalR로 갔고 모든 것이 잘 작동합니다. [여기] (http://stackoverflow.com/a/38587725/2218697)가 내 해결책입니다. – stom

답변

1

여기서 SignalR은 완벽한 일치입니다. 왜 클라이언트가 30 초마다 서버에 요청을 보내길 원합니까? 이것은 성능에 영향을 미치고 서버로드를 증가시킵니다.

대신 업데이트가있을 때마다 SignalR을 사용하고 클라이언트에 알림을 보내도록 제안합니다.

+0

예, 당신은 정확하고, 나는 'SignalR'을 사용하기 시작했지만 질문에 언급 된 바와 같이 문제가 있습니다. [here] (http://stackoverflow.com/questions/22061280/javascript-halts-in-inactive-android -chrome-tab)을 사용하면 성능상의 이유로 크롬 브라우저가 비활성 상태 인 동안 JavaScript가 비활성화됩니다. 그래서 일부 클라이언트는 브라우저를 최소화하고,'SignalR'을 사용하여 클라이언트에게 알림을 보내고'JavaScript' 함수를 호출하여 사운드를 재생하려고하면 작동하지 않습니다. 어떠한 제안 ? – stom

+0

일부 기능을 제한하기 때문에 GoDaddy 공유 호스팅에서 'SqlDependency'를 사용할 수 없지만 [여기] (http://stackoverflow.com/a/38587725/2218697) ** 해결 방법은 SqlDependency없이 ** 재생 알림입니다. SignalR **을 사용하면 브라우저가 비활성화되거나 최소화 된 경우에도 작동합니다. ** 알림이 새로 도착하면 ** 부분보기 **가 새로 고침됩니다. – stom

+1

@stom - Cool !! 그것이 해결되었다는 것을 알기 좋다! –

관련 문제