2015-11-13 2 views
0

Я хочу показать пользовательское сообщение, когда моему веб-приложению не удалось подключиться к Интернету.Как настраивать сообщение в браузере, когда интернет не подключен

В настоящее время, когда мое подключение к Интернету не удается, браузер показывает "unable to connect" or "server not found". поэтому я хочу показать свое собственное сообщение на моей странице.

Я написал это:

bool bb = System.Net.NetworkInformation.NetworkInterface.GetIsNetworkAvailable(); 
if (bb == true) 
{ 
    //custom message 
} 
else 
    //meesage 

Но до сих пор он не работает.

Как я могу показать это?

+2

Aehem. Сервер, который не найден, не может подключиться, означает, что браузеру не удалось подключиться к серверу. Итак, как сервер сможет отправить сообщение в браузер? – Thomas

+0

Проверьте это: http://www.asp.net/web-forms/overview/older-versions-getting-started/deploying-web-site-projects/displaying-a-custom-error-page-cs –

+0

да. но есть ли способ показать это сообщение из кеша? – deepak

ответ

2

Я думаю, что вы ожидаете подключения к интернету из браузера, если это так использовать navigator.onLine;

<script type="text/javascript"> 
    var isOnline = navigator.onLine; 
    if (!isOnline) 
     alert("Your custom message for no internet connectivity!!!"); 
</script> 
+0

Нет, когда я отключу интернет, а затем он покажет неспособное подключить сообщение вместо этого настраиваемого сообщения. – deepak

+0

Ваш браузер может не поддерживать, он работает в IE и Chrome - я тестировал в этих браузерах. –

+0

Я проверяю мобильный браузер Chrome и он также не работает в firefox. – deepak

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); 
} 

Я не отладить этот код.

Смежные вопросы