반응형
컴퓨터가 절전 모드에서 다시 시작될 때 데스크톱 브라우저가 감지 할 수 있습니까?
컴퓨터의 'wake up'이벤트가 브라우저에 전파되고 JavaScript API에서 사용 가능하면 좋을 것입니다. 이와 같은 것이 구현되었는지 아는 사람이 있습니까?
이 작업을 직접 수행하는 방법은 모르지만 언제 발생하는지 알 수있는 한 가지 방법은 2 초마다 실행되고 마지막 실행 시간을 저장하는 setInterval 작업을 설정하는 것입니다. 그런 다음 마지막으로 실행 된 시간이 2 초보다 훨씬 오래되었는지 확인합니다.
var lastTime = (new Date()).getTime();
setInterval(function() {
var currentTime = (new Date()).getTime();
if (currentTime > (lastTime + 2000*2)) { // ignore small delays
// Probably just woke up!
}
lastTime = currentTime;
}, 2000);
위의 메서드에서 발생할 수있는 문제 중 하나는 경고 상자 또는 기타 모달 유형 창이 JS 실행을 일시 중지하여 잘못된 깨우기 표시를 일으킬 수 있다는 것입니다. 이 문제를 해결하는 한 가지 방법은 웹 작업자를 사용하는 것입니다 (최신 브라우저에서 지원됨) ....
var myWorker = new Worker("DetectWakeup.js");
myWorker.onmessage = function (ev) {
if (ev && ev.data === 'wakeup') {
// wakeup here
}
}
// DetectWakeup.js (put in a separate file)
var lastTime = (new Date()).getTime();
var checkInterval = 10000;
setInterval(function () {
var currentTime = (new Date()).getTime();
if (currentTime > (lastTime + checkInterval * 2)) { // ignore small delays
postMessage("wakeup");
}
lastTime = currentTime;
}, checkInterval);
이것은 약간 구식이지만 Andrew Mu의 답변을 기반으로 간단한 JQuery 플러그인을 만들었습니다. https://bitbucket.org/paul.okopny/jquery.wakeup-plugin/wiki/Home
사용법은 간단합니다.
$.wakeUp(function(sleep_time) {
alert("I have slept for " + sleep_time/1000 + " seconds")
});
이것이 미래에 누군가를 도울 수 있기를 바랍니다.
다른 사람의 아주 좋은 답변과 설명 외에도 online
, offline
이벤트에 의존 할 수도 있습니다. online
실제로 온라인 상태 인지 여부를 제외하고 일반적으로이 이벤트는 실제 인터넷 연결이 끊어진 상태에서 사용자의 컴퓨터가 절전 모드에서 돌아 왔을 때 트리거됩니다.
따라서 이상적인 솔루션은 온라인 및 오프라인 이벤트와 결합 된 타이머 확인입니다.
var lastTime = (new Date()).getTime();
setInterval(function() {
var currentTime = (new Date()).getTime();
if (currentTime > (lastTime + 2000*2)) { // ignore small delays
setTimeout(function() {
//enter code here, it will run after wake up
}, 2000);
}
lastTime = currentTime;
}, 2000);
반응형
'IT TIP' 카테고리의 다른 글
파이썬은 튜플 목록을 어떻게 정렬합니까? (0) | 2020.12.30 |
---|---|
내 사용자 정의 속성이 적용된 멤버를 가져 오려면 어떻게합니까? (0) | 2020.12.30 |
C # 4.0 app.config에서 섹션을 어떻게 사용합니까? (0) | 2020.12.30 |
프로그래밍 방식으로 IIS Express 시작 및 중지 (0) | 2020.12.30 |
함수 인수를 최종적으로 선언하는 이유는 무엇입니까? (0) | 2020.12.30 |