javascript 기계 연결 여 부 를 판단 하 는 2 가지 방법

많은 장면 에서 기계 가 이미 인터넷 에 연 결 된 후에 야 웹 응용 이 시 작 될 수 있다.인터넷 이 없 으 면 오류 가 발생 합 니 다.하지만 기 계 는 가끔 재 부팅 해 야 한다.기계 가 재 부팅 되면 웹 애플 리 케 이 션 을 즉시 시작 하면 기계 의 네트워크 서비스 가 아직 준비 되 지 않 았 을 수도 있 습 니 다.특히 windows 7 은 인터넷 서 비 스 를 시작 하 는 데 몇 초 걸 리 는데 이 럴 때 는 어떻게 해 야 합 니까?이전에 몇 가지 방법 을 시도 해 보 았 습 니 다.예 를 들 어 ping 을 통 해 판단 하지만 ping 은 본 컴퓨터 가 아 닌 ip 주소 가 필요 합 니 다.이것 은 일반적인 것 이 아니다.예 를 들 어 어떤 포트 가 점용 되 었 는 지 감시 하지만 광 포트 가 점용 되 었 다 는 것 은 네트워크 가 이미 시작 되 었 다 는 것 을 설명 할 수 없다.다른 한편,웹 애플 리 케 이 션 이 라면 전단 에서 판단 하 는 것 이 좋 습 니 다.예 를 들 어 자바 script 을 사용 하 는 것 이 좋 습 니 다.인터넷 에서 도 자바 script 의 ping 시 뮬 레이 션 효 과 를 쓰 는 사람 이 있다.좀 귀 찮 긴 한데.어떻게 해 야 할 까요?관건 적 인 때 는 html 5 가 좋 은 해결 방법 을 제시 할 수 있 습 니 다.방법 1:navigator.onLine
 
if (navigator.onLine)
{ // }
else { // }
이라는 html 5 의 navigator 의 새로운 특성 은 간단하게 해결 할 수 있 습 니 다.HTML 5 는 이 를 위해 navigator.onLine 속성 을 정 의 했 습 니 다.이 속성 치 는 true 로 장치 가 인터넷 에 접속 할 수 있 음 을 나타 내 고 값 은 false 로 장치 가 오프라인 되 었 음 을 나타 냅 니 다.물론 브 라 우 저 마다 지원 이 다 릅 니 다.IE6+Safari 5+가 지원 하 는 것 이 좋 습 니 다.Firefox 3+와 navigator.onLine 속성 을 지원 하지만 메뉴 항목 인'파일-web 개발 자(설정)-오프라인 작업'을 수 동 으로 선택해 야 브 라 우 저 를 정상적으로 만 들 수 있 습 니 다.크롬 은 12 이상 이 필요 합 니 다.방법 2:물론 지원 하 는 것 이 더 호 환 되 려 면 다음 과 같은 두 가지 사건 을 사용 할 수 있 습 니 다:온라인 과 오프라인.네트워크 가 오프라인 에서 온라인 으로 바 뀌 거나 온라인 에서 오프라인 으로 바 뀌 었 을 때 각각 이 두 사건 을 촉발 합 니 다.이 두 사건 은 window 대상 에서 촉발 되 었 다.오프라인 여 부 를 확인 하기 위해 서 는 페이지 에 불 러 온 후 navigator.onLine 을 통 해 초기 상 태 를 가 져 오 는 것 이 좋 습 니 다.그리고 상기 두 사건 을 통 해 네트워크 연결 상태 가 변 했 는 지 확인 하 는 것 이다.상기 이벤트 트리거 식 이 있 으 면 navigator.onLine 속성의 값 도 바 뀌 지만 이 속성 을 수 동 으로 문의 해 야 네트워크 상태의 변 화 를 감지 할 수 있 습 니 다.
 
var EventUtil = {
addHandler: function (element, type, handler) {
if (element.addEventListener) {
element.addEventListener(type, handler, false);
} else if (element.attachEvent) {
element.attachEvent("on" + type, handler);
} else {
element["on" + type] = handler;
}
}
};
EventUtil.addHandler(window, "online", function () {
alert("Online");
});
EventUtil.addHandler(window, "offline", function () {
alert("Offline");
});

좋은 웹페이지 즐겨찾기