Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Ponawianie zapytania
Forum PHP.pl > Forum > XML, AJAX > AJAX
Mikan
Mam problem z kodem JS:

Kod
function proces(ramka, cel){
req.onreadystatechange = function ()
{
    if(req.readyState == 4)
    {
        if(req.status == 200)
        {
            document.getElementById(ramka).innerHTML = req.responseText
        }
        else
        {
            alert('error')
        }
    }
}
    if (req.readyState == 4 || req.readyState == 0)
    {
        req.open('GET', cel, true);
        req.send(null);
    }
    else
    {
        setTimeout(proces(ramka, cel), 1000)
    }

}


Chciałbym, aby za każdym razem kiedy połączenie jest zajęte, skrypt czekał 1s i ponawiał zapytanie. W obecnej wersji zwraca błąd zbyt wielu odwołań do samego siebie (too much recursion). Nie mam pomysłu jak inaczej wykonać ten skrypt.
potwor
Myślę że zrozumiałem o co chodzi:
  1. function proces(ramka, cel){
  2. req.onreadystatechange = function ()
  3. {
  4. if(req.readyState == 4 || req.readyState == 0)
  5. {
  6. if(req.status == 200)
  7. {
  8. document.getElementById(ramka).innerHTML = req.responseText
  9. }
  10. else
  11. {
  12. alert('error')
  13. }
  14. } else {
  15. setInterval(proces(ramka, cel), 1000)
  16. }
  17. }
  18. }
Mikan
Ten skrypt tylko przechwytuje dane z serwera, a chciałbym żeby jeszcze wysylal
potwor
  1. function proces(ramka, cel){
  2. if (req.readyState == 4 || req.readyState == 0)
  3. {
  4. req.open('GET', cel, true);
  5. req.send(null);
  6. }
  7. req.onreadystatechange = function ()
  8. {
  9. if(req.readyState == 4 || req.readyState == 0)
  10. {
  11. if(req.status == 200)
  12. {
  13. document.getElementById(ramka).innerHTML = req.responseText
  14. }
  15. else
  16. {
  17. alert('error')
  18. }
  19. } else {
  20. setInterval(proces(ramka, cel), 1000)
  21. }
  22. }
  23. }

Coś takiego?
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.