1. Este site usa cookies. Ao continuar a usar este site está a concordar com o nosso uso de cookies. Saber Mais.

Múltiplas chamadas em Ajax

Discussão em 'Web Development' iniciada por costa, 22 de Dezembro de 2008. (Respostas: 5; Visualizações: 1171)

  1. olá,

    tenho um problema com ajax.

    com este código apenas consigo fazer uma chamada ao ajax de cada vez e eu pretendia fazer várias chamadas ao mesmo tempo.

    Alguém tem uma solução?

    obrigado a todos

    Código:
    var xmlHttp
    var container
    var loading
    
    function ajax(_idContainer, _idLoading, _endereco, _metodo)
    { 
        
        xmlHttp=GetXmlHttpObject()
        if (xmlHttp==null)
         {
             alert ("Browser does not support HTTP Request")
             return
         }
        var url
        tam = _endereco.length
        
        var pos=_endereco.indexOf('?')
        
        if(pos!=-1)
            url=_endereco+"&"
        else
            url=_endereco+"?"
            
        url=url+"sid="+Math.random()
        container=_idContainer
        loading=_idLoading
        xmlHttp.onreadystatechange=StateChanged
        xmlHttp.open(_metodo,url,true)
    
        xmlHttp.send(null)
        
    }
    
    function StateChanged() 
    {
        if(xmlHttp.readyState<4 || xmlHttp.readyState!="complete")
        {
            document.getElementById(container).style.display="none"
            document.getElementById(loading).style.display="block"
        }
        if (xmlHttp.readyState==4 || xmlHttp.readyState=="complete")
         { 
             document.getElementById(container).style.display="block"
            document.getElementById(loading).style.display="none"
             document.getElementById(container).innerHTML=xmlHttp.responseText 
         } 
    }
    
    function GetXmlHttpObject()
    {
        
        var xmlHttp=null;
        try
         {
             // Firefox, Opera 8.0+, Safari
             xmlHttp=new XMLHttpRequest();
         }
        catch (e)
         {
             //Internet Explorer
             try
              {
                  xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");
              }
             catch (e)
              {
                  xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
              }
         }
        return xmlHttp;
    }
    
    PS: enganei-me queria meter isto no WebDevelopment. Movam para lá sff.
     
    Última edição: 22 de Dezembro de 2008
  2. hostmake

    hostmake Power Member

    As chamadas ao AJAX é sempre enviar;receber.

    Podes é chamar várias vezes o AJAX, ou ter outro script, que chama várias vezes o AJAX e encaminhe para várias divs.
     
  3. XiriX

    XiriX Banido

    Boas,

    Podes via javascript fazer um settimeout para fazer mais do que uma chamada de cada vez, mas atenção que devido a limitações de protocolo HTTP 1.1, não é possivél fazer mais do que duas chamadas HTTP para o mesmo servidor.

    Abs
    XiriX
     
  4. lsharkf

    lsharkf Power Member

    E se ele criar tipo subdominos apontar para o mesmo ficheiro?

    Tipo

    dns1.odominio.com --> odominio.com/ajax.php
    dns2.odominio.com --> odominio.com/ajax.php
    dns3.odominio.com --> odominio.com/ajax.php
    dns4.odominio.com --> odominio.com/ajax.php
    dns5.odominio.com --> odominio.com/ajax.php

    Dará para fazer multiplos http request's em simultaneo? :x
     
  5. SoundSurfer

    SoundSurfer Power Member

    Não... a limitação não é do servidor, é do Browser... mas acho que há soluções para isso, vê o meu link acima
     

Partilhar esta Página