Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Co zrobić z wynikiem?, Własna funkcja obsługująca AJAX
WebCM
post
Post #1





Grupa: Zarejestrowani
Postów: 375
Pomógł: 20
Dołączył: 28.07.2006

Ostrzeżenie: (0%)
-----


Przy pomocy artykułu na stronie Mozilli utworzyłem prosty skrypt do obsługi AJAX (być może są błędy - dopiero go piszę).
CODE
//AJAX
function NewReq(type,url,co,errmsg)
{
http=false;
if(window.XMLHttpRequest)
{
http=new XMLHttpRequest();
if(http.overrideMimeType) http.overrideMimeType('text/xml');
}
//IE
else if(window.ActiveXObject)
{
http=new ActiveXObject("Microsoft.XMLHTTP");
}
if(!http) return false;
if(type=='POST') http.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
http.onreadystatechange=Answer;
http.open(type,url,true);
http.send(co);
}

function Answer()
{
try
{
if(http.readyState==4)
{
if(http.status==200)
{
alert(http.responseText);
}
else
{
if(errmsg!=0) alert(errmsg);
return false;
}
}
}
catch(e)
{
alert('Error: '+e.description);
return false;
}
}

Pozostało teraz dodać obsługę funkcji skryptów. Metody są różne. Jedną z nich jest możliwość przesłania kodu do funkcji (odpowiednik w php: eval) LUB nazwy funkcji jako argument NewReq. Rozwiązanie ma zalety (np. nie trzeba tworzyć wielu funkcji) jak i wady (dużo argumentów, itp.). W JavaScript jest to prawdopodobnie niemożliwe.

Chyba najlepszym rozwiązaniem jest utworzenie obiektu AJAX dla danego skryptu. Przykład (nie wiem, czy poprawny):
Kod
obiekt = new NewReq(...);
obiekt.Success = function() { ... }
Jednak jeśli będzie korzystać z AJAX w tym samym czasie więcej modułów, prawdopodobnie się pogryzą. Możliwe jest więc przekazanie nazwy zmiennej obiektu (zamiast domyślnego http (który użyłem)) np. w argumencie NewReq()? Może jest lepsze rozwiązanie?
Kod
nazwa = new NewReq()

//W funkcji NewReq
this.http=new XMLHttpRequest();
Czy coś w tym stylu zapobiegnie konfliktom?

Jak to poprawnie zrobić?

Ciekawe jest też rozwiązanie, które stosuje AdvAJAX. Używa się znaku dwukropka. Chyba użyte jest słowo prototype w kodzie. W kursach nie ma o tym jednak zbyt wiele.


--------------------
„Jesteśmy różni, pochodzimy z różnych stron Polski, mamy różne zainteresowania, ale łączy nas jeden cel. Cel ten to Ojczyna, dla której chcemy żyć i pracować.” Roman Dmowski
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 22.08.2025 - 05:32