我正在寫一個小型的網絡應用程序,並希望在允許他提交他的數據之前檢查用戶連接。如何檢查用戶連接?
function testConnection() {
var xmlhttp;
document.getElementById("checkingConnectivity").style.display = "block";
if (window.XMLHttpRequest) { // code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp=new XMLHttpRequest();
} else { // code for IE6, IE5
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
var success = false;
xmlhttp.onreadystatechange = function() {
if (xmlhttp.readyState==4 && xmlhttp.status==200) {
document.getElementById("noConnectivity").style.display = "none";
document.getElementById("checkingConnectivity").style.display = "none";
success = true;
}
}
connIterator = connIterator + 1;
xmlhttp.open("GET","testConnection.jsp?i="+connIterator,true); // Dynamic URL to prevent caching
xmlhttp.send();
// Wait 10 seconds
for(var i = 0; i < 10; i++) {
// If no success so far, keep waiting
if(!success) {
window.setTimeout('1000');
} else {
return true;
}
}
// success still isn't true, so we assume a timeout
document.getElementById("noConnectivity").style.display = "block";
document.getElementById("checkingConnectivity").style.display = "none";
return false;
}
的問題是,這個函數總是返回false,即使該文件是可到達。 在window.setTimeout('1000');
之前添加警報時,所以我認爲setTimeout
不起作用。
你有什麼建議嗎?
在此先感謝!
爲什麼你甚至在開發webapp時創建連接檢查? – Jordy
在我的情況下,用戶可能會不時斷開連接 – Gundon
這就是爲什麼我們有HTTP狀態代碼; p – Jordy