jquery - replacement - ¿Podemos controlar el ícono de "carga" en la pestaña del navegador?
jquery.browser is undefined (5)
Tengo una serie de llamadas AJAX a través de jQuery. Cuando se realiza una llamada ajax, no hay indicación visual. Normalmente, si haces clic en un enlace o cargas que no sean ajax, el navegador muestra un pequeño icono de carga en la pestaña.
¿Hay alguna manera de decirle al navegador que muestre este pequeño ícono en la pestaña? (Hay alrededor de 30 de estas llamadas, así que espero evitar modificarlas).
No, no puedes decirle al navegador tal cosa.
Pero puedes hacer tu propio indicador de carga. Incluya un elemento oculto en su marcado, luego use los eventos ajaxStart
y ajaxStop
para controlar su visibilidad:
$("#loading_animation").bind({
ajaxStart: function() { $(this).show(); },
ajaxStop: function() { $(this).hide(); }
});
ajaxStart
es ajaxStart
por jQuery cuando se inicia una solicitud ajax cuando ninguna otra se está ejecutando; ajaxStop
se ajaxStop
cuando se completa una solicitud de ajaxStop
ya que no hay otros en ejecución.
No.
Pero puedes modificar el CSS del cursor.
body {
cursor:wait;
}
Antes de entrar en cualquier código o cualquier cosa, solo quiero decir que esta es una solución fea, pero realmente funcionó para mí.
Lo que hice fue poner un iframe en el sitio. Luego lo escondo con pantalla: ninguno en el css.
Luego, en cada llamada ajax recargo el iframe con una nueva página. Esto hace que el navegador muestre la carga en la barra de pestañas.
Sé que no es una solución bonita y tiene algunos defectos. Como si no pudiera controlar la duración de la carga si el iframe pasa a cargar más rápido que el ajax. Pero lo estoy tirando por ahí. Tal vez alguien más pueda construir sobre el concepto.
Aquí hay una alternativa.
Antes de hacer la llamada, puede mostrar la imagen y luego en la función (no después de la llamada) ocultarla de nuevo.
Usted absolutamente puede. Ver esta publicación: Cambiar el favicon del sitio web dinámicamente
Simplemente crea un ícono animado de un gráfico de carga y cambia el ícono a ese mientras se carga.
El problema será que no tienes exactamente el mismo gráfico de carga que usa el navegador en particular, pero creo que el mensaje se transmitirá de manera efectiva.