我希望在我的网络应用程序无法连接到互联网时显示自定义消息。
目前,当我的互联网连接失败时,浏览器会显示"unable to connect" or "server not found"
。所以我想在我的页面上显示我的自定义消息。
我写了这个:
bool bb = System.Net.NetworkInformation.NetworkInterface.GetIsNetworkAvailable();
if (bb == true)
{
//custom message
}
else
//meesage
但它仍然没有用。
我该如何展示?
答案 0 :(得分:2)
我认为您期望从浏览器连接互联网,如果是这样,请使用navigator.onLine;
Tr.WH.Eu6.ISC
答案 1 :(得分:0)
定期从客户端呼叫服务器,如果没有应答或没有预期应答 - 显示错误消息。
网络表单:
使用ProcessRequest
的实现创建处理程序,如下所示:
public void ProcessRequest(HttpContext context)
{
context.Response.ContentType = "text/plain";
context.Response.Write("Ok");
}
mvc : 用这样简单的结果创建动作:
public ActionResult CheckInternetConnection()
{
return Json("Ok");
}
当然,此请求处理程序不应要求任何授权或其他预处理
然后创建js timer
和请求方法
var maxTime = <your interval time>;
var timer;
//write own method for check request
function performRequest() {
var xhr = new XMLHttpRequest();
// reserve 1 sec for timeout function execution
// if we didn't - you can get a situation when
// simultaneously performing more than 1 request
xhr.timeout = maxTime - 1000;
xhr.ontimeout = function {
//waiting to long
alert('<your message>');
window.clearInterval(timer);
};
xhr.open('GET', '<url of your check connection handler>', true);
xhr.send();
xhr.onreadystatechange = function () {
if (xhr.readyState != 4)
return;
if (xhr.responseText !== 'OK') {
//Can't access to handler
alert('<your message>');
window.clearInterval(timer);
}
}
}
//after page load start request timer
document.onload += function () {
timer = window.setInterval(performRequest, maxTime);
}
我还没有调试这段代码。