Foros del Web » Programando para Internet » Jquery »

peticion ajax con jquery mobile

Estas en el tema de peticion ajax con jquery mobile en el foro de Jquery en Foros del Web. Hola a todos, espero me puedan colaborar con la siguiente duda. He estado trabajando con jquery mobile y en realidad es bastante sencillo, sin embargo ...
  #1 (permalink)  
Antiguo 23/10/2012, 07:38
Avatar de cuasatar  
Fecha de Ingreso: junio-2011
Ubicación: Bogotá Rock City
Mensajes: 1.230
Antigüedad: 12 años, 10 meses
Puntos: 181
peticion ajax con jquery mobile

Hola a todos, espero me puedan colaborar con la siguiente duda. He estado trabajando con jquery mobile y en realidad es bastante sencillo, sin embargo a la hora de tratar de trabajar con ajax he tenido problemas. Como no se manejar el ajax con jquery lo implemente con ajax de javascript. La petición funcionaba perfectamente pero se perdia los estilos de los botones y eso, por tal motivo ademas de hacer la petición llevaba dinamicamente los estilos y el javascript para que los añadiera. Me funciona pero tiene un resultado nefasto porque por una razon que no entiendo el header de la pagina se añadia al final de la petición y cada vez que hago una peticion se superpone haciendo que se vuelva una locura la pagina. He leido la documentación de jquery mobile pero por falta de experiencia no encuentro la manera de hacerlo mas eficiente. Si alguien me explica como migrarlo a jquery mobile o sepa de algun tutorial que trabaje este tipo de peticiones se lo agradezco mucho. Igual si ven que tengo algun error que se haya escapado y me ayude a solucionarlo se lo agradezco mucho.

Aquí dejo el codigo para que se entienda mejor lo que explico. Gracias de antemano por su colaboración.

Código Javascript:
Ver original
  1. <!-crear elemento tipo script-->
  2. function jsDinamic(direccion,tipo){
  3.     var g=document.createElement("script");
  4.     g.src=direccion;
  5.     g.type=tipo;
  6.     document.body.appendChild(g);
  7.     }
  8. <!-crear elemento tipo link-->
  9. function cssDinamic(estilo,referencia){
  10.     var g=document.createElement("link");
  11.     g.rel=estilo;
  12.     g.href=referencia;
  13.     document.body.appendChild(g);  
  14.     }  
  15.  
  16. <!--peticion por ajax de la pagina-->
  17. function PaginaMobile(nropagina){
  18.     var divPost,ajax;
  19.     divPost = document.getElementById("post");
  20.      ajax=objetoAjax();
  21.      ajax.open("GET", "layouts/mi_pagina.php?pag="+nropagina,true);
  22.      ajax.onreadystatechange=function() {
  23.            if(ajax.readyState==1){
  24.                        
  25.                         divPost.innerHTML = '<img src="imagenes/ajax-loader.gif" border="0"/>Cargando, espere por favor...';
  26.                         //modificamos el estilo de la div, mostrando una imagen de fondo
  27.                        
  28.                        }
  29.                          if (ajax.readyState==4) {
  30.    //mostrar resultados en esta capa
  31.     jsDinamic("http://www.mipagina.com/js/jquery-1.7.1.min.js","text/javascript");
  32.     jsDinamic("http://www.mipagina.com/js/jquery.mobile-1.2.0.min.js","text/javascript")
  33.     cssDinamic("stylesheet","http://www.mipagina.com/css/jquery.mobile.structure-1.2.0.min.css")   
  34.     divPost.innerHTML = ajax.responseText;
  35.       }
  36.    
  37. }
  38.      ajax.send();
  39.      
  40. }
__________________
Blog de humor http://elcuasatar.net63.net/
  #2 (permalink)  
Antiguo 23/10/2012, 08:37
Avatar de maycolalvarez
Colaborador
 
Fecha de Ingreso: julio-2008
Ubicación: Caracas
Mensajes: 12.120
Antigüedad: 15 años, 9 meses
Puntos: 1532
Respuesta: peticion ajax con jquery mobile

no entiendo para que haces una petición AJAX normal sin usar el wrapper de jQuery $.ajax

además no has evaluado el ajax.status == 200, es una de las razones por el cual no funciona, y reitero ¿para que reinventar la rueda si puedes usar la API de jQuery?

por otro lado jQUeryMobile tiene sus propias funciones para cargar páginas, él lo hace casi todo por ajax
__________________
¡Por favor!: usa el highlight para mostrar código
El que busca, encuentra...
  #3 (permalink)  
Antiguo 23/10/2012, 09:25
Avatar de cuasatar  
Fecha de Ingreso: junio-2011
Ubicación: Bogotá Rock City
Mensajes: 1.230
Antigüedad: 12 años, 10 meses
Puntos: 181
Respuesta: peticion ajax con jquery mobile

Hola, gracias por el tiempo en responder. Bueno explico a grosso modo las inquietudes que has dejado.

Cita:
no entiendo para que haces una petición AJAX normal sin usar el wrapper de jQuery $.ajax
Cita:
Como no se manejar el ajax con jquery lo implemente con ajax de javascript.
Precisamente si pido colaboración es porque se que lo óptimo es usar $.ajax pero primero me base en algo que ya sabia hacer.

Cita:
además no has evaluado el ajax.status == 200, es una de las razones por el cual no funciona, y reitero ¿para que reinventar la rueda si puedes usar la API de jQuery?
Voy a añadiserlo aunque quiero hacer la aclaración que la paginacion si esta funcionando pero tal como lo comente al añadir esto:

jsDinamic("http://www.mipagina.com/js/jquery.mobile-1.2.0.min.js","text/javascript")

me añade de manera muy rara el header de la pagina y lo superpone (visualmente se van apilando los datos del pie siendo que nunca lo manipulo, es super extraño)

Cita:
por otro lado jQUeryMobile tiene sus propias funciones para cargar páginas, él lo hace casi todo por ajax
Exacto, pero en mi caso en especifico es recargar solo un pequeño fragmento de la pagina para paginar los ultimos post y que el usuario se desplace de a 5 en cinco. Me has dado una idea que la probare. Ya comentare los resultados y gracias por la colaboración.
__________________
Blog de humor http://elcuasatar.net63.net/
  #4 (permalink)  
Antiguo 23/10/2012, 12:16
Avatar de maycolalvarez
Colaborador
 
Fecha de Ingreso: julio-2008
Ubicación: Caracas
Mensajes: 12.120
Antigüedad: 15 años, 9 meses
Puntos: 1532
Respuesta: peticion ajax con jquery mobile

lo del ajax.status == 200 es el caso más común de todos los errores en AJAX, recuerda que el onreadystatechange es ejecutado en varias oportunidades durante la petición, y el momento justo cuando se retorna la respuesta es cuando ocurren (ajax.readyState == 4) && (ajax.status == 200) juntos
__________________
¡Por favor!: usa el highlight para mostrar código
El que busca, encuentra...

Etiquetas: Ninguno
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 23:24.