Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Ajax i php, problem sa setTimeout funkcijom

[es] :: PHP :: Ajax i php, problem sa setTimeout funkcijom

[ Pregleda: 2019 | Odgovora: 8 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

b0ris
Boris Vujicic
Senior PHP programer
Beograd

Član broj: 126587
Poruke: 158
94.189.235.*



+2 Profil

icon Ajax i php, problem sa setTimeout funkcijom21.12.2008. u 15:49 - pre 186 meseci
Cao
Imam jedan interesantan problem. Kao i uvek sve radi savrseno u ff dok ostali browseri se nedaju slomiti :D
Da predjem na problem:

Imam div tag unutar strane i unutar tog taga se nalazi neki html kod.
Ja pokusavam da ajaxom promenim taj html kod, stim sto to radim nakon nekog vremena opet.

E sad, sve je super kad se pozove prvi put, ajax odradi posao i zameni sadrzaj to diva novim, ali posle toga nastaje problem.
Problem je sledeci, ajax se izvrsava ali ja kao responseText i dalje dobijam isti sadrzaj koji sam dobio prvi put, tacnije php skripta koja vraca sadrzaj se ni ne poziva (kako je to moguce).
Probao sam u sred rada da izmenim php skriptu i vratim neki probni text. Promena se u ff vidi odma, dok ostali browseri uopste ne reaguju na to.

Neki saveti posto ja trenutno nemam ideju.

Kod
Code:

function pokreniPreporuke(){
  /*setTimeout('preporukePromena()',5000);*/
  preporukePromena();
}

function preporukePromena()
{
      var xmlHttp;
      try
        {
        // Firefox, Opera 8.0+, Safari
        xmlHttp=new XMLHttpRequest();
        }
      catch (e)
        {
        // Internet Explorer
        try
          {
              xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");
          }
        catch (e)
          {
          try
            {
                xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
            }
          catch (e)
            {
            alert("Your browser does not support AJAX!");
            return false;
            }
          }
        }
        xmlHttp.onreadystatechange=function()
        {
          if(xmlHttp.readyState==4)
          {          
            document.getElementById('preporukeChange').innerHTML = xmlHttp.responseText;
            setTimeout('pokreniPreporuke()',10000);
          }
        }
        url = "http://www.vrticiportal.com/mo...tend/scripts/php/preporuke.php";
        xmlHttp.open("GET",url,true);
        xmlHttp.send(null);
}


Jedino sto mi pada napamet je da nesto nije uredu da httpRequestom. Neznam kako ovo tacno radi.

ps: Nadam se da sam postovao ovo na dobrom mestu
---------------------------------------------------------------------
Just do it.
 
Odgovor na temu

ban17
Branko Stankovic
Beograd

Član broj: 97129
Poruke: 20
*.dynamic.sbb.rs.

Sajt: tutor.rs


Profil

icon Re: Ajax i php, problem sa setTimeout funkcijom21.12.2008. u 16:43 - pre 186 meseci
Code:

<script>
function preporukePromena()
{
      var xmlHttp;
      try{xmlHttp=new XMLHttpRequest();}
      catch (e){try { xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");}
        catch (e) { try {xmlHttp=new ActiveXObject("Microsoft.XMLHTTP"); }
          catch (e)            {            alert("Your browser does not support AJAX!"); return false;}
          }} xmlHttp.onreadystatechange=function() { if(xmlHttp.readyState==4) {          
            document.getElementById('preporukeChange').innerHTML = xmlHttp.responseText;

          }
        }
        url = "http://..................";
        xmlHttp.open("GET",url,true);
        xmlHttp.send(null);
                    setInterval('preporukePromena()',10000);// ako se ponavlja svakih 10 s
}
window.onload=preporukePromena();
</script>


ovako radi


 
Odgovor na temu

b0ris
Boris Vujicic
Senior PHP programer
Beograd

Član broj: 126587
Poruke: 158
94.189.235.*



+2 Profil

icon Re: Ajax i php, problem sa setTimeout funkcijom21.12.2008. u 18:06 - pre 186 meseci
Sad sam probao, nece ni to. ne znam u cemu je problem, skroz mi je cudno.
Verovatno postoji neki obrazac ponasanja koji je neophodno ispratiti.
---------------------------------------------------------------------
Just do it.
 
Odgovor na temu

Whois

Član broj: 92214
Poruke: 37
*.dynamic.panet.co.yu.



Profil

icon Re: Ajax i php, problem sa setTimeout funkcijom21.12.2008. u 18:48 - pre 186 meseci
url = "http://.................."+"&amp;nocache="+Math.random();
 
Odgovor na temu

b0ris
Boris Vujicic
Senior PHP programer
Beograd

Član broj: 126587
Poruke: 158
94.189.235.*



+2 Profil

icon Re: Ajax i php, problem sa setTimeout funkcijom21.12.2008. u 19:02 - pre 186 meseci
Stupid cache :|
trebalo bi mi minimum 2 dana da ovo provalim, na koju adresu da saljem pivo.
Ili se vidimo u gradu na istom.
---------------------------------------------------------------------
Just do it.
 
Odgovor na temu

b0ris
Boris Vujicic
Senior PHP programer
Beograd

Član broj: 126587
Poruke: 158
94.189.235.*



+2 Profil

icon Re: Ajax i php, problem sa setTimeout funkcijom21.12.2008. u 19:07 - pre 186 meseci
Cisto da bude jasno i lako za dalju pretragu.

Ako iko namerava da radi Ajax request sa iste strane vise puta, treba da obrati paznju na cache koji browser pravi.
Da bi se ovaj problem resio potrebno je generisati random broj koji ce biti prikacen linku i na taj nacin napraviti jedinstven link.



PS: Nadam se da sam ovo dobro objasnio :)
---------------------------------------------------------------------
Just do it.
 
Odgovor na temu

Whois

Član broj: 92214
Poruke: 37
*.dynamic.panet.co.yu.



Profil

icon Re: Ajax i php, problem sa setTimeout funkcijom21.12.2008. u 19:14 - pre 186 meseci
moze tako a moze i na server stranu da stavis nesto poput:

header("Expires: Mon, 04 Dec 1999 21:29:02 GMT");
header("Pragma: no-cache");

i na ovaj nacin ce da ti radi
 
Odgovor na temu

staticInt

Član broj: 66101
Poruke: 485
77.46.180.*



+43 Profil

icon Re: Ajax i php, problem sa setTimeout funkcijom21.12.2008. u 19:46 - pre 186 meseci
Da ne ulazim u ostale stvari nemoj da koristis setTimeout vec setInterval
Code:

 //Now we should check db in 5 seconds
 var checkingInterval = setInterval( function() {
 //ajax code             
 }, 5000 ); //5000 is 5 seconds


Meni neke stvari nisu radile kad sma koristio setTimeOut i po meni ovo je najbolje resenje. Kada hoces da ubijes taj tred samo uradis clearInterval(checkingInterval);
 
Odgovor na temu

b0ris
Boris Vujicic
Senior PHP programer
Beograd

Član broj: 126587
Poruke: 158
*.net.upc.cz.



+2 Profil

icon Re: Ajax i php, problem sa setTimeout funkcijom26.12.2008. u 17:08 - pre 186 meseci
Pitao sam se u cemu je razlika izmedju te dve funkcije?
Jos nisam nasao vremena da sednem i da malo ozbiljnije programiram u js, ali od nove godine mi nadolazi posao bas u js pa cu morati time da se malo ozbiljnije pozabavim.
---------------------------------------------------------------------
Just do it.
 
Odgovor na temu

[es] :: PHP :: Ajax i php, problem sa setTimeout funkcijom

[ Pregleda: 2019 | Odgovora: 8 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.