Hola. ¿Qué tal? Les comento mi situación. Tengo una especie de panel (adjunto una imagen y su respectivo código, que es como viene por defecto el nav) con varias opciones, en cada una de ellas le muestran, lógicamente, distintos datos al usuario. Me he dado cuenta que tras ir agregándole más información y consultas PHP a cada una de los apartados en el nav la página (sólo esa en especial, donde se encuentra el nav) está tardando un poquito más que antes en cargar.
He leído y también visto, en algunos casos, en Internet, que varios desarrolladores lo que hacen es colocar un ajaxloader. Así es, al parecer es algo como si no cargaran todos los apartados del nav excepto el activo o principal hasta que no se los clickee. ¿Puede ser esto así? Y recién cuando son clickeados, se cargan, aparece el ajaxloader (en algunos casos, con el típico texto de "Cargando") y finalmente muestra la información.
entre Desarrolladores
Recibe ayuda de expertos
Registrate y pregunta
Es gratis y fácil
Recibe respuestas
Respuestas, votos y comentarios
Vota y selecciona respuestas
Recibe puntos, vota y da la solución
Pregunta
Cargar información sólo al clickearla (Ajaxloader/PHP)
- preguntó
- Web
- 553 Vistas
- 1 Respuestas
- abierta
1 Respuesta
Que tal si incluyes un evento 'click' a los enlaces de las pestañas, y haces la consulta junto con toda la lógica allí.
por ejemplo:
(function () {
var remoteUrl, getRemoteData, cachedData,
tabPanelSelector, showLoading, hideLoading,
loaderLayout;
cachedData = {};
loaderLayout = $('<div >')
.addClass('loading-layout')
.append($('<i class="glyphicon glyphicon-refresh spinner" >'));
getRemoteData = function (url) {
var deferred = $.Deferred();
if (cachedData[remoteUrl]) {
return deferred.resolve(cachedData[remoteUrl]);
}
return $.ajax({
method: 'GET',
dataType: 'json',
url: url,
data: {}
});
};
showLoading = function () {
$(this)
.append(loaderLayout)
.find('.loading-layout')
.fadeIn();
}
hideLoading = function () {
$(this).find('.loading-layout').fadeOut();
}
$('#app-tabs a').on('click', function (e) {
e.preventDefault();
tabPanelSelector = $(this).data('target');
remoteUrl = $(this).data('remote');
if (!$(tabPanelSelector).length) {
tabPanelSelector = $(this).attr('href');
}
showLoading.call($(tabPanelSelector)[0]);
getRemoteData(remoteUrl).done($.proxy(function (response) {
$(tabPanelSelector).html(response.body);
cachedData[remoteUrl] = response;
hideLoading.call($(tabPanelSelector)[0]);
}, this));
$(this).tab('show');
});
$('#app-tabs a').first().trigger('click');
})();
PD:
- yo use el atributo
data-remote
para obtener la url remota de la pestaña. - Use una promesa en jquery ( $.Deferred ) para obtener la respuesta de la url remota
- llamo al evento click del primer enlace para cargar la primera pestaña.
Por favor, accede o regístrate para añadir un comentario.
Por favor, accede o regístrate para responder a esta pregunta.
En el blog
-
- 689581
- 1
- Jul 5, 2015
Sin Respuesta
-
- 80
- 0
- Oct 18
-
- 166
- 0
- Jul 9
-
- 535
- 1
- Mar 19
-
- 409
- 2
- Feb 26
-
- 4727
- 0
- Nov 7, 2023
-
- 479
- 0
- Sep 19, 2023
-
- 464
- 0
- Ago 21, 2023
-
- 637
- 0
- May 14, 2023
- ver todas
Preguntas relacionadas
Actividad Reciente
alyvrs preguntó Oct 19
Ayuda , necesito mostrar datos creados solo por el…ManHol preguntó Jul 9
pasar un archivo de excel a csv en pythonArtEze respondió Abr 24
Alguien sabe, no me ignorenArtEze seleccionó una respuesta Abr 24
Bajar extensión de Chrome sin actualizar el navega…ArtEze respondió Abr 24
Bajar extensión de Chrome sin actualizar el navega…ArtEze preguntó Abr 24
Bajar extensión de Chrome sin actualizar el navega…ArtEze respondió Abr 24
No me deja instalar OracleArtEze respondió Abr 24
Formulario que guarde los datos de un jsonArtEze comentó Abr 24
Script /boot/ scrapingSantiago2610 comentó Mar 23
Acualizar ChoiceField en django
Ultimas Preguntas
Preguntas relacionadas
Usuarios Top
- Leonardo-Tadei
- 227320 Puntos
- Peter
- 150480 Puntos
- white
- 75880 Puntos
- carlossevi
- 63580 Puntos
- magarzon
- 30650 Puntos
- pregunton
- 20400 Puntos
Todos los Usuarios Usuarios Nuevos
...