Foros del Web » Programando para Internet » Javascript »

dos o mas funciones en ajax

Estas en el tema de dos o mas funciones en ajax en el foro de Javascript en Foros del Web. Hola a todos, estoy aprendiendo el temna de ajax, y me encuentro con codigo alomejor repetido.. tengo una funcion en ajax que busca por nombres, ...
  #1 (permalink)  
Antiguo 02/07/2014, 16:13
Avatar de fedefrankk  
Fecha de Ingreso: agosto-2007
Mensajes: 871
Antigüedad: 16 años, 8 meses
Puntos: 7
Pregunta dos o mas funciones en ajax

Hola a todos, estoy aprendiendo el temna de ajax, y me encuentro con codigo alomejor repetido..

tengo una funcion en ajax que busca por nombres, aca esta:

Código Java:
Ver original
  1. <script type="text/javascript">
  2.         function sugerencias(str){
  3.             var xmlhttp;
  4.             if (str.length==0)
  5.               {
  6.               document.getElementById("txtHint").innerHTML="";
  7.               return;
  8.               }
  9.               if (window.XMLHttpRequest)
  10.               {
  11.               xmlhttp=new XMLHttpRequest();
  12.               }
  13.             else
  14.               {
  15.               xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
  16.               }
  17.           xmlhttp.onreadystatechange=function()
  18.               {
  19.               if (xmlhttp.readyState==4 && xmlhttp.status==200)
  20.                  {
  21.                  document.getElementById("txtHint").innerHTML=xmlhttp.responseText;
  22.                  }
  23.               }
  24.           xmlhttp.open("GET","sugerencias.php?q="+str,true);
  25.             xmlhttp.send();
  26.         }
  27.     </script>

el tema que quiero usar otra funcion, se puede meter dentro del codigo de arriva?... y si se puede donde seria?
es la siguiente..


Código Java:
Ver original
  1. function carga(url){
  2. var contenedor;
  3. contenedor= document.getElementById('contenedor');
  4. ajax=fede();
  5. ajax.open("POST",url,true);
  6. ajax.onreadystatechange=function(){
  7.     if(ajax.readyState==4){
  8.         contenedor.innerHTML= ajax.responseText
  9.     }
  10. }
  11. ajax.send(null)
  12.  
  13. }


Buenos espero que se entienda saludos a todos
fede
  #2 (permalink)  
Antiguo 02/07/2014, 16:32
Avatar de Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.552
Antigüedad: 12 años, 5 meses
Puntos: 977
Respuesta: dos o mas funciones en ajax

Una pregunta, ¿por qué quieres juntar ambas funciones si en cada una haces una petición distinta a la otra?

Saludos
__________________
«Juro por mi vida y mi amor por ella, que jamás viviré para el provecho de otro hombre, ni le pediré a otro hombre que viva para el mío».

Ayn Rand
  #3 (permalink)  
Antiguo 02/07/2014, 16:53
Avatar de fedefrankk  
Fecha de Ingreso: agosto-2007
Mensajes: 871
Antigüedad: 16 años, 8 meses
Puntos: 7
Pregunta Respuesta: dos o mas funciones en ajax

Hola, no se si se puede, no es que quiero hacerlo, como se repite este fragmento:

Código Java:
Ver original
  1. if (window.XMLHttpRequest)
  2.               {
  3.               xmlhttp=new XMLHttpRequest();
  4.               }
  5.             else
  6.               {
  7.               xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
  8.               }
  9.           xmlhttp.onreadystatechange=function()
  10.               {
  11.               if (xmlhttp.readyState==4 && xmlhttp.status==200)
pense que alomejor se podia poner mas de una funcion dentro de eso..

se puede o hay que hacer la conexion por cada peticion al servidor?, pregunto porque no se... y queria sacarme la dudas

saludos
fede
  #4 (permalink)  
Antiguo 02/07/2014, 17:17
Avatar de zerokilled
Javascripter
 
Fecha de Ingreso: abril-2009
Ubicación: Isla del Encanto, La Borinqueña [+>==]
Mensajes: 8.050
Antigüedad: 15 años
Puntos: 1485
Respuesta: dos o mas funciones en ajax

buenas,
inicialmente tenia duda de hacia donde exactamente te estás enfocando, si a reducir la repetición de código o si realmente querias unir las dos funciones. pues, en teoría puedes tener más de una función (correctamente handler) para una misma petición. también se puede reutilizar una instancia de XMLHttpRequest para hacer varias peticiones, pero te limitas a realizar una petición por vez. o sea, no puedes usar una misma instancia para hacer dos peticiones distintas al mismo tiempo. quizas lo que te convenga hacer es una función genérica para generar instancias XMLHttpRequest donde le pasas como parámetros la información necesaria para iniciar la instancia. algo asi:

Código:
function fn(type, url, handler){
var request = new XMLHttpRequest();
...
return  request;
}

var req1 = fn('get', 'url', function(){ ... });
var req2 = fn('post', 'url', function(){ ... });
__________________
la maldad es una virtud humana,
y la espiritualidad es la lucha del hombre contra su maldad.

Etiquetas: ajax, funcion, funciones, html, php
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 10:43.