IT TIP

컴퓨터가 절전 모드에서 다시 시작될 때 데스크톱 브라우저가 감지 할 수 있습니까?

itqueen 2020. 12. 30. 19:56
반응형

컴퓨터가 절전 모드에서 다시 시작될 때 데스크톱 브라우저가 감지 할 수 있습니까?


컴퓨터의 '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);

참조 URL : https://stackoverflow.com/questions/4079115/can-any-desktop-browsers-detect-when-the-computer-resumes-from-sleep

반응형