Zwracanie wartości, z funkcji, w funkcji [Js, Ajax]
ďťż
Zwracanie wartości, z funkcji, w funkcji [Js, Ajax] Zobacz wiadomości
Cytat
A gdyby tak się wedrzeć na umysłów górę, / Gdyby stanąć na ludzkich myśli piramidzie, / I przebić czołem przesądów chmurę, / I być najwyższą myślą wcieloną. . . Juliusz Słowacki, Kordian
Zwracanie wartości, z funkcji, w funkcji [Js, Ajax]
Michal2000 - 24-12-2006 00:43 Zwracanie wartości, z funkcji, w funkcji [Js, Ajax]
Witam, Ostatnio, dostałem, taki kod Ajax, pobierający treść strony, i zapisującym, tą treść, w obiekcie o jakimś ID. Kod wygląda tak:
function getData(dataSource, divID) { var XMLHttpRequestObject = false; if (window.XMLHttpRequest) { XMLHttpRequestObject = new XMLHttpRequest(); } else if (window.ActiveXObject) { XMLHttpRequestObject = new ActiveXObject("Microsoft.XMLHttp"); } if(XMLHttpRequestObject) { XMLHttpRequestObject.open("GET", dataSource); XMLHttpRequestObject.onreadystatechange = function() { if (XMLHttpRequestObject.readyState == 4 && XMLHttpRequestObject.status == 200) { document.getElementById(divID).innerHTML = XMLHttpRequestObject.responseText; delete XMLHttpRequestObject; XMLHttpRequestObject = null; } } XMLHttpRequestObject.send(null); } }
I mam takie pytanie, czy da sie, przerobić tak ten kod, aby zamiast zapisywać wartość z XMLHttpRequestObject.responseText w jakimś obiekcie, funkcja zwracała kod, za pomocą "return", próbowałem, wstawić w funkcję "return", lecz niestety nie działało to, dlatego, że XMLHttpRequestObject.responseText znajduje sie w funkcji, która znajduje się właśnie w funkcji getData.
Z góry dziękuje za odpowiedz. Pozdrawiam Michał Dobaczewski
przepraszam, jesli wyslalem, dwie wiadomosci, ale mam ostatnio problemy z internetem
mrrau - 24-12-2006 00:43
Michal2000 napisał(a): > Witam, > Ostatnio, dostałem, taki kod Ajax, pobierający > treść strony, i zapisującym, tą treść, w obiekcie > o jakimś ID. Kod wygląda tak: [...] > przepraszam, jesli wyslalem, dwie wiadomosci, ale mam ostatnio problemy > z internetem
Właściwie to masz też taki problem, że dostałeś taki kod Ajax a nie napisałeś go samodzielnie. Nie rozumiesz tego kodu. Ale napiszę ci taką odpowiedź:
Nie da się tam użyć return, dlatego że jest to połączenie asynchroniczne. Samo wywołanie funkcji getData kończy zaraz po wywołaniu metody XMLHttpRequestObject.send(null);
Powinieneś do wywołania getData dodać jeszcze jeden argument, funkcję która zostanie wywołana po zakończeniu połącznia (tzw. callback). Funkcję tę należałoby wywołać np. metodą aplly i jako argument dodać wynik połączenia.
ethanak - 24-12-2006 00:43
On 2006-10-03 23:19, mrrau wrote: [...] > Nie da się tam użyć return,
> Właściwie to masz też taki problem, że dostałeś taki kod Ajax a > nie napisałeś go samodzielnie. > Nie rozumiesz tego kodu. Ale napiszę ci taką odpowiedź:
Dziękuję wszystkim za odpowiedzi, i zgodzę sie z tym, w Javascripcie, ogólnie nie programuje, dlatego, nie rozmówiem, sporej części, kody, mogę sie jedynie domyślać do czego one służą.
Michal2000 - 24-12-2006 00:43
hmm... A moglby mi ktoś, tak dokładniej podpowiedzieć jak to zrobić?
ethanak - 24-12-2006 00:43
Michal2000 napisał(a): > hmm... A moglby mi ktoś, tak dokładniej podpowiedzieć jak to zrobić?
ethanak -- mailto=window.atob('ZXRoYW5ha0Bwb2xpcC5jb20='); /* Pisze człowiek ambitnie, a tu przychodzi prostak i wszystko rozumie. To jest ewidentna bezczelność! S. Friedmann/J. Kofta */
Michal2000 - 24-12-2006 00:43
ethanak napisał(a): > ethanak
Dziekuje bardzo za opdowiedz. Pozdrawiam :)
Michal2000 - 24-12-2006 00:43
I mam jeszcze jedno pytanko, moziwe, jest pobranie kody, jakiejs strony, znajdujacej sie poza sererem, na ktorym uruchamiany jest skrypt?
ethanak - 24-12-2006 00:43
Michal2000 napisał(a): > I mam jeszcze jedno pytanko, moziwe, jest pobranie kody, jakiejs strony, > znajdujacej sie poza sererem, na ktorym uruchamiany jest skrypt?
Normalnie nie. A nienormalnie... no, dla uproszczenia załóż że nie :)
ethanak -- mailto=window.atob('ZXRoYW5ha0Bwb2xpcC5jb20='); /* Pisze człowiek ambitnie, a tu przychodzi prostak i wszystko rozumie. To jest ewidentna bezczelność! S. Friedmann/J. Kofta */
Michal2000 - 24-12-2006 00:43
ethanak napisał(a): > Michal2000 napisał(a): >> I mam jeszcze jedno pytanko, moziwe, jest pobranie kody, jakiejs >> strony, znajdujacej sie poza sererem, na ktorym uruchamiany jest skrypt? > > Normalnie nie. A nienormalnie... no, dla uproszczenia załóż że nie :) > > ethanak
No, chciałem, "odciążyć", moja aplikacje, i zeby kod strony www pobierał użytkownik, a PHP, tylko wyciągał z niego odpowiednie dane :) A wiec można jakoś nienormalnie to zrobić :) Może jakąś podpowiedz link fajny, albo chociaż słowo kluczowe jakie do google wpisać ;D
ethanak - 24-12-2006 00:43
Michal2000 napisał(a): > ethanak napisał(a): > >> Michal2000 napisał(a): >> >>> I mam jeszcze jedno pytanko, moziwe, jest pobranie kody, jakiejs >>> strony, znajdujacej sie poza sererem, na ktorym uruchamiany jest skrypt? >> >> >> Normalnie nie. A nienormalnie... no, dla uproszczenia załóż że nie :) >> >> ethanak > > > No, chciałem, "odciążyć", moja aplikacje, i zeby kod strony www pobierał > użytkownik, a PHP, tylko wyciągał z niego odpowiednie dane :)
A PHP też działa po stronie klienta? Nie. No więc gdzie tu jest odciążenie?
> A wiec można jakoś nienormalnie to zrobić :) Może jakąś podpowiedz link > fajny, albo chociaż słowo kluczowe jakie do google wpisać ;D
Pisałem: załóż że nie. Jest to możliwe ale tylko w pewnych szczególnych przypadkach (np. podpisany skrypt dla Mozilli, podpisany ActiveX dla IE)
ethanak -- mailto=window.atob('ZXRoYW5ha0Bwb2xpcC5jb20='); /* Pisze człowiek ambitnie, a tu przychodzi prostak i wszystko rozumie. To jest ewidentna bezczelność! S. Friedmann/J. Kofta */
Michal2000 - 24-12-2006 00:43
ethanak napisał(a):
> A PHP też działa po stronie klienta? Nie. No więc gdzie tu jest odciążenie?
Tak, ale PHP pobiera dane za pomoca file_get_contents(); a chialem, zeby Ajax pobieral kod strony, i otwieral strone PHP, wysylajac w zmiennej kod HTML, PHP, by wciagal dane z tego Kodu, i wyswietal wynik, a Ajax by go ladnie wstawial na strone, ale niestety, bede musial, zrobic to w Javi'e...
Michal2000 - 24-12-2006 00:43
Michal2000 napisał(a): > ethanak napisał(a): > >> A PHP też działa po stronie klienta? Nie. No więc gdzie tu jest >> odciążenie? > > Tak, ale PHP pobiera dane za pomoca file_get_contents(); a chialem, zeby > Ajax pobieral kod strony, i otwieral strone PHP, wysylajac w zmiennej > kod HTML, PHP, by wciagal dane z tego Kodu, i wyswietal wynik, a Ajax by > go ladnie wstawial na strone, ale niestety, bede musial, zrobic to w > Javi'e...
Decede mihi sole - nie zasłaniaj mi słonca. Gdy kogoś kochasz, jesteś jak stworzyciel świata - na cokolwiek spojrzysz, nabiera to kształtu, wypełnia się barwą, światłem. Powietrze przytula się do ciebie, choćby był mróz, a ty masz w sobie tyle radości, że musisz ją rozdawać wokoło, bo się w tobie nie mieści Hoc fac - tak czyń. A tergo - od tyłu; z tyłu. I czarne włosy posiwieją. Safona