2016-10-18 1 views
0

HTML 클래스를 기반으로 URL이 다운되었는지 확인하기 위해 다양한 URL을 반복하고 싶습니다. 그래서 난 내 도메인을 포함하는 배열을 가지고 나에게배열의 URL을 순환하여 클래스가 존재하는지 확인하십시오.

var urls = ['http://www.dummy1.com', 'http://www.dummy2.com' ] 
if ($(".underMaintenance")[0]) { 
      alert ("Website Is Down");  
} 
else { 
     //continue looping through the other urls 
} 
+1

당신이 할 수없는 브라우저 기반의 자바 스크립트 액세스를 사용/그건 당신이 서버 측 프록시에 반송해야하는 경우가 아닌 경우, 즉 명시 적으로 허용하지 않는 외부 도메인의 문서를 읽을 또는 모든 작업 서버 측에서 수행하십시오. –

+0

정확히 어떻게 작동합니까? 웹 사이트가 다운 된 경우 어떻게 클래스를 반환 할 수 있습니까? 서버가 다운되면 응답이 없습니다. PHP를 설치 했습니까? 오히려 그 상태를 확인하는 데 사용하고 싶습니다 –

+0

감사합니다 @AlexK. 귀하의 즉각적인 회신을 위해. 기본적으로 나를 위해 적합합니다 URL을 통해 간격으로 지속적으로 실행되는 스크립트가 될 것입니다 그리고 하나는 탐색하는 동안 (getElementByClassName => .underMaintenance에 기초한) 내게 경고합니다. – LamBr

답변

0

당신이 크로스 도메인 요청을 할 수있는 핑 API 엔드 포인트를하지 않는 브라우저를 통해이 작업을 수행 할 수있는 방법은 없습니다에게 경고하기 위해 아래 어느 하나 체크 할 수있다. 백엔드에서 javascript가 백엔드에서 node.js를 확인하려는 경우 다른 방법으로 백 엔드 언어를 사용하여 웹 사이트에 요청을 보낼 수 있습니다. 당신이 선택하는 어떤 점에서 어떤 제약이 있기 때문에 백엔드가 필요할 것입니다. here

0

아마도 가장 좋은 방법은 아니 겠지만 xPath를 사용하는 YQL 쿼리를 사용하는 클라이언트 측 자바 스크립트 솔루션은 ' inmaintenance 'div. 30 초마다 (또는 쿼리 시간보다 길면 다른 간격으로) 배열의 다음 URL로 다시 트리거됩니다. 배열의 끝 부분에 도달하면 시작으로 돌아갑니다.

$(document).ready(function() { 
 
    check(); 
 
}); 
 

 
urls = ['google.com', 'yahoo.com']; 
 
i = 0; 
 

 
function check() { 
 
    checkQuery = 'select * from html WHERE url = "' + urls[i] + '" AND xpath = "//div[@class = \'inmaintenance\']"'; 
 
    checkUrl = 'http://query.yahooapis.com/v1/public/yql?q=' + encodeURIComponent(checkQuery) + '&format=xml'; 
 
    $.getJSON(checkUrl + '&callback=?', function(data) { 
 
    if (data.query.length) { 
 
     alert('Server at ' + urls[i] + ' is down'); 
 
    } 
 
    }).success(function() { 
 
    i++ 
 
    if (i == urls.length) { 
 
     i = 0; 
 
    } 
 
    setTimeout(function() { 
 
     check(); 
 
    }, 30000); 
 
    }); 
 

 
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

관련 문제