Skocz do zawartości
Xavi

[ajax] Najlepsza Książka Dla Laika

Rekomendowane odpowiedzi

Piszę od jakiegoś czasu w PHP, teraz zachaczyłem o temat tworzenia dynamicznych witryn przy użyciu ajax'u.

Mam książkę: Ajax i PHP Tworzenie Interaktywnych aplikacji webowych.

Lecz na start jest ona za trudna.

Nie miałem nigdy do czynienia z JS ani z Javą.

Macie może jakieś godne polecenia książki traktujące o podstawach AJAX'a(czy może AJAX'u ? )?

Byłbym bardzo wdzięczny :huh:

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Piszę od jakiegoś czasu w PHP, teraz zachaczyłem o temat tworzenia dynamicznych witryn przy użyciu ajax'u.

Mam książkę: Ajax i PHP Tworzenie Interaktywnych aplikacji webowych.

Lecz na start jest ona za trudna.

Nie miałem nigdy do czynienia z JS ani z Javą.

Macie może jakieś godne polecenia książki traktujące o podstawach AJAX'a(czy może AJAX'u ? )?

Byłbym bardzo wdzięczny :huh:

"Pragmatic Ajax" - krótko i zrozumiale. IMO świetny ajax dla laików.

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

skoro za trudne są książki to może zacznij tylko od tego co tobie potrzeba na początku, na przykład możliwość pobrania wyniku pracy skryptu PHP do zmiennej JS, potem możesz rozszerzać informacje o kolejne interesujące ciebie zagadnienia

 

więc od początku, najpierw musisz utworzyć uchwyt obiektu, inicjalizacja obiektu może sie nie powieść alby sprawdzić w późniejszym czasie czy sie udało, definiujesz domyślny stan czyli nieudane:

 

var ObiektXMLHttp = false;

 

potem możesz wykonać przypisanie jeżeli sie powiedzie to stan uchwytu będzie <> false

 

if (window.XMLHttpRequest) {

ObiektXMLHttp = new XMLHttpRequest();

} else if (window.ActiveXObject) {

ObiektXMLHttp = new ActiveXObject("Microsoft.XMLHTTP");

}

 

źródło obiektu może być różnego pochodzenia w zależności od przeglądarki w Opera Mozilla itp... jest to funkcja wodowana, natomiast inaczej jest w IE gdzie dostarczycielem tej funkcji jest kontrolka ActiveX, stąd ten warunek

 

teraz kiedy uchwyt jest i obiekt został zainicjowany można go użyć, należy pamiętać o sprawdzenia czy inicjalizacja obiektu powiodło sie:

 

if (ObiektXMLHttp) {

 

jeżeli tak to można go użyć, otwieramy połączenie:

 

ObiektXMLHttp.open(metoda, adres, true);

 

metoda: czyli droga którą zapytanie trafi na serwer może to być "GET", "POST" lub kilka innych obsługiwanych przez serwer :wink: tu sobie poszukaj

adres: nazwa pliku i parametry jeżeli wybrano metodę GET a plikiem docelowym jest skrypt PHP np: "plik.php?nazwa=wartosc&nazwa2=wartosc2" dane POST

true: :wink: doczytaj

 

korzystając z metody POST dobrze jest wysłać kilka nagłówków:

 

ObiektXMLHttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");

ObiektXMLHttp.setRequestHeader("Content-length", długosc);

zmienna "długość" to wielkość danych POST czyli np: var.length

 

możesz dodać swoje nagłówki np: żeby uregulować sprawę kodowania znaków, nie ma tu znaczenie jakiej metody używasz

 

należy jeszcze wysłać dane POST jeżeli używamy tej metody:

 

ObiektXMLHttp.send("nazwa1=wartosc1&nazwa2=wartosc2");

 

zapytanie poszło czas odebrać wynik, należy zarejestrować funkcje jako wyjątek tak aby na bieżąco interpretować zmiany stanu realizacji zapytania:

 

ObiektXMLHttp.onreadystatechange = function() {

 

wyjątek ObiektXMLHttp.onreadystatechange może zwrócić wartości od 0 do 4 w zależności od stanu, co one oznaczają, doczytaj

jest tez druga metoda która zwraca bezpośrednio odpowiedz serwera: ObiektXMLHttp.status

 

if (ObiektXMLHttp.readyState == (1 || 0)) {

 

kiedy .readyState znajduje sie wartość 1 oznacza to ze zapytanie jest w trakcie realizacji powinno sie dodać jeszcze 0 które oznacza ze zapytanie nie zostało jeszcze wysłane, można umieścić np.: napis "ładuje..." czy coś w tym stylu

 

} else if (ObiektXMLHttp.readyState == (4 || 2) && ObiektXMLHttp.status == 200) {

 

jeżeli ma wartość 4 dane zostały zwrócone można je odczytać, można dodać 2 oraz ObiektXMLHttp.status == 200 żeby nie przegapić momentu otrzymana danych szczególnie gdy wywołujemy plik .php tak jak na przykładzie

 

można juz zapisać otrzymane dane do zmiennej:

 

var = ObiektXMLHttp.responseText;

 

teraz zamykamy otwarte klamry

 

}

}

 

na koniec

 

ObiektXMLHttp.send(null); jest wymagane dla innych metod niż POST

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Dołącz do dyskusji

Możesz dodać zawartość już teraz a zarejestrować się później. Jeśli posiadasz już konto, zaloguj się aby dodać zawartość za jego pomocą.

Gość
Dodaj odpowiedź do tematu...

×   Wklejono zawartość z formatowaniem.   Przywróć formatowanie

  Dozwolonych jest tylko 75 emoji.

×   Odnośnik został automatycznie osadzony.   Przywróć wyświetlanie jako odnośnik

×   Przywrócono poprzednią zawartość.   Wyczyść edytor

×   Nie możesz bezpośrednio wkleić grafiki. Dodaj lub załącz grafiki z adresu URL.

Ładowanie


×
×
  • Dodaj nową pozycję...