Saltar al contenido

¿Comprobar si existe conexión a Internet con jQuery?

Intenta interpretar el código de forma correcta antes de adaptarlo a tu trabajo y si tdeseas aportar algo puedes dejarlo en los comentarios.

La mejor opción para tu caso específico podría ser:

Justo antes de tu cierre etiqueta:


')

Esta es probablemente la forma más fácil dado que su problema se centra en jQuery.

Si quisiera una solución más robusta, podría probar:

var online = navigator.onLine;

Obtenga más información sobre las especificaciones del W3C en las aplicaciones web sin conexión; sin embargo, tenga en cuenta que esto funcionará mejor en los navegadores web modernos; hacerlo con navegadores web más antiguos puede no funcionar como se esperaba o en absoluto.

Alternativamente, una solicitud XHR a su propio servidor no es un método tan malo para probar su conectividad. Teniendo en cuenta que una de las otras respuestas indica que hay demasiados puntos de falla para un XHR, si su XHR tiene fallas al establecer su conexión, entonces también tendrá fallas durante el uso de rutina de todos modos. Si no se puede acceder a su sitio por algún motivo, es probable que tampoco se pueda acceder a sus otros servicios que se ejecutan en los mismos servidores. Esa decisión depende de ti.

No recomendaría hacer una solicitud XHR al servicio de otra persona, ni siquiera a google.com. Haga la solicitud a su servidor, o no haga nada.

¿Qué significa estar “en línea”?

Parece haber cierta confusión sobre lo que significa estar “en línea”. Tenga en cuenta que Internet es un montón de redes, sin embargo, a veces está en una VPN, sin acceso a Internet “en general” o a la red mundial. A menudo, las empresas tienen sus propias redes que tienen una conectividad limitada con otras redes externas, por lo que podría considerarse “en línea”. Estar en línea solo implica que estás conectado a a red, no la disponibilidad ni la accesibilidad de los servicios a los que intenta conectarse.

Para determinar si se puede acceder a un host desde su red, puede hacer lo siguiente:

function hostReachable()  XMLHttpRequest )( "Microsoft.XMLHTTP" );

  // Open new request as a HEAD to the root hostname with a random param to bust the cache
  xhr.open( "HEAD", "//" + window.location.hostname + "/?rand=" + Math.floor((1 + Math.random()) * 0x10000), false );

  // Issue request and handle response
  try  catch (error) 
    return false;
  


También puede encontrar la esencia de eso aquí: https://gist.github.com/jpsilvashy/5725579

Detalles sobre la implementación local

Algunas personas han comentado: “Siempre me devuelven false”. Eso es porque probablemente lo estés probando en tu servidor local. Sea cual sea el servidor al que le hagas la solicitud, deberás poder responder a la solicitud HEAD, que por supuesto se puede cambiar a GET si usted quiere.

Ok, tal vez un poco tarde en el juego, pero ¿qué hay de verificar con una imagen en línea? Quiero decir, el OP necesita saber si necesita obtener el CMD de Google o la copia local de JQ, pero eso no significa que el navegador no pueda leer Javascript sin importar qué, ¿verdad?


Solo mis 2 centavos

5 años después-versión:

Hoy en día, existen bibliotecas JS para usted, si no quiere entrar en el meollo de los diferentes métodos descritos en esta página.

Uno de estos es https://github.com/hubspot/offline. Comprueba la conectividad de un URI predefinido, por defecto su favicon. Detecta automáticamente cuando se ha restablecido la conectividad del usuario y proporciona eventos claros como up y down, al que puede vincularse para actualizar su interfaz de usuario.

Comentarios y calificaciones

Nos puedes amparar nuestra investigación mostrando un comentario y dejando una puntuación te damos la bienvenida.

¡Haz clic para puntuar esta entrada!
(Votos: 3 Promedio: 4.3)


Tags :

Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *