/// worker 처리
var chkModeWorker = new Worker('js/worker_chk_mode.js');
chkModeWorker.postMessage({
"url": "/jsonData/chk_mode.php"}
);
chkModeWorker.onmessage = function (e) {
if (e.data == null) {
console.warn("점검모드 확인을 실패했습니다.");
} else {
if(e.data.chk*1 > 0){
// 점검모드 처리
$(".headerBox").addClass("chkMod");
}else{
// 점검모드 해제 처리
$(".headerBox").removeClass("chkMod");
}
}
}
chkModeWorker.onerror = function (e) {
console.warn("점검모드 확인을 실패했습니다.");
}
/// worker 본 파일
let lastStateText;
function ajaxChkModeLoad(url) {
fetch(url, {
method: "GET",
}).catch(function(error){
// 에러 검출
console.log('Request failed. ' + error);
}).then(response =>
// 데이터 텍스트화
response.text()
).then(response => {
// 기존 데이터와 같을 경우 스킵
if(lastStateText !== response){
lastStateText = response;
// 텍스트 리턴
postMessage({
"chk": lastStateText
});
}
// 폴링 처리
setTimeout(() => {
ajaxChkModeLoad(url);
}, 3000);
})
}
// 첫 실행시 처리
onmessage = function (event) {
ajaxChkModeLoad(event.data.url);
}