Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [js] oczekiwanie na odpoweidź serwera
Forum PHP.pl > Forum > XML, AJAX
Lejto
Mam kod który pobiera wiadomość z innej strony jest to ajax i php. W czasie pobierania danych pokazuje się "Ładowanie" a gdy już pobierze wyświetla się zawartość.
Jaką funkcją mogę zrobić tak że bd się pokazywało: Łączenie ze stroną, ładowanie... . Użyć xmlHttp.readyState?

Pozdrawiam
skowron-line
Tak.
Cytat
0 Uninitialized - open() has not been called yet.
1 Loading - send() has not been called yet.
2 Loaded - send() has been called, headers and status are available.
3 Interactive - Downloading, responseText holds the partial data.
4 Completed - Finished with all operations.

http://www.quirksmode.org/blog/archives/20..._notes_r_2.html
Lejto
ok to dam w ifa i w display komunikat i zobaczę

napisałem coś takiego:
  1. // funkcja wywoływana przy zmianie statusu żšdania HTTP
  2. function handleGettingNews()
  3. {
  4. // kiedy readyState ma wartoœć 4, jesteœmy gotowi do odebrania odpowiedzi z Sewera
  5. myDiv = document.getElementById("myDivElement");
  6. //wyświetla status żądania
  7. if(xmlHttp.readyState == 1)
  8. {
  9. myDiv.innerHTML += "ładuje <br/>";
  10. }
  11. else if(xmlHttp.readyState == 2)
  12. {
  13. myDiv.innerHTML += "ładuje2 <br/>";
  14. }
  15. else if(xmlHttp.readyState == 3)
  16. {
  17. myDiv.innerHTML += "ładuje3 <br/>";
  18. }
  19. if (xmlHttp.readyState == 4)
  20. {
  21. // kontynuuje tylko, gdy status HTTP ma wartoœć "OK"
  22. if (xmlHttp.status == 200)
  23. {
  24. try
  25. {
  26. // przetwarza wiadomoœć z serwera
  27. getNews();
  28. }
  29. catch(e)
  30. {
  31. // komunikat o błędzie
  32. displayError(e.toString());
  33. }
  34. }
  35. else
  36. {
  37. // komunikat o błędzie
  38. displayError(xmlHttp.statusText);
  39. }
  40. }
  41. }

i wyświetlanie
  1. function process()
  2. {
  3. // kontynuuje, jeœli xmlHttp nie jest pusty
  4. if (xmlHttp)
  5. {
  6. // próbuje połšczyć się z serwerem
  7. try
  8. {
  9.  
  10. display("Lączenie się ze stroną... <img src=\"loading.gif\" width=\"15\">")
  11. // asynchroniczne żšdanie HTTP otrzymania nowej wiadomoœci
  12. xmlHttp.open("GET", serverAddress, true);
  13. xmlHttp.onreadystatechange = handleGettingNews;
  14. xmlHttp.send(null);
  15. }
  16. catch(e)
  17. {
  18. displayError(e.toString());
  19. }
  20. }
  21. }

Ale nie pokazuje kolejno: ładuje, ładuje2, ładuje3. Tylko samo ładuje i potem wyświetla. Gdzie jest błąd?
skowron-line
Pamiętaj tylko że ten proces nie trwa 1min tyko kilka ms więc czasem cieżko zobaczyć ten przeskok.
Lejto
a no tak, ale ten skrypt łączy się z inną stroną, więc powinno wskazać
a kod jest poprawnie napisany?
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.