Autor Tema: 2 tips al usar AJAX  (Leído 1532 veces)

Desconectado westwest

  • PHPero Master
  • ******
  • Mensajes: 2.837
  • Karma: 104
  • Sexo: Masculino
    • Ver Perfil
2 tips al usar AJAX
« en: 01 de Agosto de 2010, 02:08:42 am »
Hola, despues de responder una duda me he propuesto poner estos tips que son muy importantes a la hora de usar ajax, no creo que me extienda demasiado, pero aunque sea corto nos ahorrará muchos dolores de cabeza.

1º usar encodeURIComponent:
Cuando enviamos datos con AJAX, ya sea GET o POST pueden surgir fallos relacionados con los parametros, ya sea post o get.
Independientemente del metodo usado, la estructura será:
"nombre=valor1&mensaje=valor2"
Imaginemos que el valor1 viene dado por un input donde escribo "westwest" y el segundo valor es un textarea (o input...) que pone "Ese post es un copy&paste ¬¬"

Al enviar quedará:
"nombre=westwest&mensaje=Ese post es un copy&paste ¬¬"
Pero... verdaderamente se enviará el mensaje que queremos? SI hacemos la prueba veremos que "mensaje" contendrá "Ese post es un copy", y se añade un nuevo parametro llamado "paste ¬¬"
¿Por qué? El &, inicia otro parametro.
Por ello, encodeURIComponent cambia caracteres que afectan a la URL por una equivalencia %XX que solucionará nuestro problema.

2º cache:
Los navegadores guardan a veces el código de una web para que cargue más rápido en otro momento, esto es tedioso si debemos abrir la misma web con ajax, aunque haya cambiado, devolverá lo mismo.
Se soluciona añadiendo un parametro único a la URL, lo mejor es usar el "equivalente" a time() de PHP en JS, que es:
Código: [Seleccionar]
var date = new Date.getTime();
url += "&time=" + date;

NOTA: Si usas jQuery, puedes usar cache: false en el $.ajax; si lo usas continuamente, puedes usar ajaxSetup para establecerlo por defecto, de esta manera:
Código: [Seleccionar]
$.ajaxSetup({cache:false});

Saludos.

Comunidad PHPeros

2 tips al usar AJAX
« en: 01 de Agosto de 2010, 02:08:42 am »

Desconectado Rastrillox

  • PHPero Experto
  • *****
  • Mensajes: 592
  • Karma: 25
  • Sexo: Masculino
    • Ver Perfil
    • Forhabbo.es
Re:2 tips al usar AJAX
« Respuesta #1 en: 01 de Agosto de 2010, 03:33:15 am »
Muchas gracias Weswest... me servira de gran ayuda...

K +1

Desconectado Focux

  • PHPero Master
  • ******
  • Mensajes: 1.010
  • Karma: 22
    • Ver Perfil
Re:2 tips al usar AJAX
« Respuesta #2 en: 01 de Agosto de 2010, 04:54:55 am »
Lo primero es equivalente a urlencode en php.
Mixtiqueros.net

<?PHP
define
(_miNombre, &#39;Focux&#39;);
if(_miNombre == &#39;Focux&#39;): printf(&#39;%s es un programador avanzado&#39;, _miNombre); else: printf(&#39;Tu no eres %s&#39;, _miNombre); endif;
?>

Desconectado nmartin021

  • PHPero Avanzado
  • ****
  • Mensajes: 250
  • Karma: 9
    • Ver Perfil
Re:2 tips al usar AJAX
« Respuesta #3 en: 04 de Agosto de 2011, 13:13:54 pm »
K+, siento revivir el mensaje :(