Хотя я не верю, что Javascript «действительно» предлагает такую функциональность, вы можете создать объект xmlhttprequest и, возможно, сравнить разницу между временем отправки и временем соединения.
Следующий код показывает возможный способ достижения этого:
Изменить: должен предупредить, если сервер сейчас не работает
var address = "http://www.google.com";
var t1 = Date.now();
var t2;
var max = 100000;
var failed = false;
var httpReq = (window.XMLHttpRequest)?new XMLHttpRequest():new ActiveXObject("Microsoft.XMLHTTP");
if(httpReq == null) {
console.log("Error: XMLHttpRequest failed to initiate.");
}
httpReq.onreadystatechange = function() {
var failTimer = setTimeout(function() {
failed = true;
httpReq.abort();
}, max);
if (httpReq.readyState == 4) { //Completed loading
if (!failed && (httpReq.status == 200 || httpReq.status == 0)) {
clearTimeout(failTimer);
t2 = Date.now();
var timeTotal = (t2 - t1);
if(timeTotal > max) {
onFail();
} else {
onSuccess(timeTotal);
}
}
else { //Otherwise, there was a problem while loading
console.log("Error " + httpReq.status + " has occurred.");
onFail();
}
}
}
try {
httpReq.open("GET", address, true);
httpReq.send(null);
} catch(e) {
console.log("Error retrieving data httpReq. Some browsers only accept cross-domain request with HTTP.");
onFail();
}
function onSuccess(timeTotal) {
alert("Time needed to connect: " + timeTotal);
}
function onFail() {
alert("Well this isn't good");
}
iframe также может быть жизнеспособным решением.