Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Problem ze startowym skryptem Ajaxa
Forum PHP.pl > Forum > XML, AJAX
blackstone

Rozpoczynam właśnie przygodę z Ajaxem. Spróbowałem stworzyć pierwszy prosty skrypt który pobrał by mi zawartość pliku php o nazwie "ajax.php" ( plik z ajaxem ma rozszerzenie html ) i go wyświetlił. Niestety we wszystkich przeglądarkach wyskakuje mi okienko że moja przeglądarka nie obsługuje Ajaxu. Po proszę o jakieś sugestie bo dopiero co rozpoczynam przygodę z tym językiem i sam raczej zbyt szybko nie dojdę co jest nie tak smile.gif . Z góry dzięki za odpowiedzi.

O to skrypt

  1.  
  2. <script type="text/javascript">
  3.  
  4. function inix()
  5. {
  6.  
  7. try{ xhr = XMLHttprequest() ;}
  8. catch(e) {
  9.  
  10. try {xhr = new ActiveXObject("Msxml12.XMLHTTP") }
  11. catch(e2)
  12. {
  13. try {xhr = new ActiveXObject("Microsoft.XMLHTTP") }
  14. catch(e3){ alert("Twoja przeglądraka nie obsługuje Ajaxa"); }
  15.  
  16. }
  17.  
  18. }
  19.  
  20. return xhr ;
  21.  
  22. }
  23.  
  24. function run_ax()
  25. {
  26.  
  27. xhr = new inix() ;
  28.  
  29. xhr.open("GET","ajax.php",true) ;
  30.  
  31. xhr.onreadystatechange = function() {
  32. if(xhr.readystate == 4)
  33. { document.getElementById("show").innertHTML = xhr.responseText ; }
  34. }
  35.  
  36. xhr.send(null) ;
  37.  
  38. }
  39.  
  40.  
trueblue
Znajdź dwie różnice:
  1. try{ xhr = new XMLHttpRequest() ;}
blackstone
Dzięki, pomogło rzeczywiście głupia literówka smile.gif .

ALe mam teraz problem nowego pokroju.

Mam na kompie (dokładnie mówiąc na serwerze ) dwa pliki: jeden plik w formacie php a drugi w formacie.txt. Sprawa wygląda tak że udało mi się wyswietlić w pliku ajaxowym plik txt ale php za nic nie idzie ( a zależy mi na tym bo współpraca php i ajax to chyba podstawa czatów działających w czasie rzeczywistych jeśli mają byc oparte o sql) .

Kod prawie ten sam co wcześniej jedynie we wcześniejszych liniach 31-34 zrobiłem małą podmiankę

z

  1. xhr.onreadystatechange = function() {
  2. if(xhr.readystate == 4)
  3. { document.getElementById("show").innertHTML = xhr.responseText ; }
  4. }


na prawie to samo tylko bez sprawdzenia połączenia instrukcją warunkową.

  1. xhr.onreadystatechange = function() {
  2. // if(xhr.readystate == 4)
  3. document.getElementById("show").innerHTML= ">" + xhr.responseText ;
  4. }


bo inaczej się nic nie wyświetlało .
Poproszę o jakieś sugestie bo dopiero uczę sie chodzić w tematyce Ajax smile.gif
viking
readyState
Myślałeś o fetch api?
blackstone
Chyba nie...dopiero ogarniam podstawy Ajax smile.gif, chyba że masz na myśli wykorzystanie Jquery do obsługi Ajaxu - tak mam zamiar to ogarnąć bo podobno łatwiej idzie obsługa na Jquery niz bez niego.
Jeśli nie, czy możesz napisać przykład który miałeś namyśli ? ?


Mam jeszcze inny problem który zauważyłem przed chwilą. Mój skrypt ustawiony jest na przesył asynchroniczny ( xhr.open("GET","test.txt",true) ; ) czyli jak rozumiem po każdej zmianie w zapisie pliku automatycznie powinna się wyświetlana zmiana pokazać bez klikania w odświeżanie - ale tak nie jest. Próbowałem zmieniać Get na POST a potem nawet parametr true na false - za każdym razem muszę odświeżać. Nie mam pomysłu jak to poprawic..... closedeyes.gif
viking
Odświeżenie musisz zrobić sam. Async oznacza tylko że nie blokujesz głównego wątku przeglądarki. Sync jest wycofany.
Akurat FetchApi jest dużo prostsze. Wymaga zrozumienia promise które same w sobie niczym trudnym nie są chociaż początkującym sprawiają trudności.
blackstone
OK,dzięki, pobawię sie tym i zobaczy się co wyjdzie smile.gif .

"Odświeżenie musisz zrobić sam. Async oznacza tylko że nie blokujesz głównego wątku przeglądarki. Sync jest wycofany." .

W takim razie MUSZĘ zapytać czy czaty działające na wzór facebookowego to nie jest Ajax? Tam nie jest przeładowywana cała strona tylko komunikacja odbywa sie w czasie rzeczywistym ( uczestnik czatu x wysyła wiadomośc i natychmiast uczestnik y moze przeczytać wiadomość i wysłać wiadomość- bez przeładowywania ) , a właśnie coś takiego chce napisać tylko teraz to nie wiem czy obrałem dobru kierunek ( podobno podstawą tego jest Asynchroniczność,ale nie wiem czy dobrze zrozumiałem ) .
viking
XHR to najprostsza forma i mało skuteczna do czatu. Poczytaj raczej o Server-Sent Events, WebSockets.
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-2024 Invision Power Services, Inc.