-
11. Data: 2012-02-03 09:56:27
Temat: Re: JS - asynchroniczna komunikacja
Od: Cezary Tomczyk <c...@g...pl>
W dniu 2012-02-03 00:38, Marek pisze:
> Dnia Thu, 02 Feb 2012 16:06:47 +0100, Cezary Tomczyk napisał(a):
>
>>
>> Weź przeczytaj kilka stron z pierwszej strony wyników wyszukiwania. Zrób
>> przykład i sprawdź sam jak to działa. Jak napotkasz na problemy, wówczas
>> opisz je.
>>
>> Lektura: https://developer.mozilla.org/pl/AJAX
>
> Link jaki mi podałeś zawiera tylko jakieś tutooriale Ajax'a. Nie bardzo
> rozumiem czego miałbym sie z nich dowiedzieć na temat niniejszego wątku.
Z podanego przeze mnie linku dowiesz się właśnie to, czego potrzebujesz.
Ajax to nie jest żaden język programowania tylko protokół komunikacyjny.
Ajax to akronim od Asynchronous JavaScript and XML.
Z artykułu dowiedziałbyś się też, że potrzebna Ci jest jedna metoda:
XMLHttpRequest. Chyba mogę pokusić się o stwierdzenie, że 99%
przeglądarek obsługuje XMLHttpRequest. "Ale"! Z linka dowiedziałbyś
dalej też to, że, niestety, inicjacja tego obiektu jest różna w
przeglądarkach.
Dlatego jeśli programujesz pod konkretną przeglądarkę (np. jakiś
wewnętrzny projekt firmowy), to nie potrzebujesz żadnych bibliotek. Ale
jeśli efekt Twojej pracy ma być działający na wielu przeglądarkach to 1)
albo sam napiszesz sobie cross-browserową obsługę protokołu
XMLHttpRequest, 2) albo skorzystasz z gotowych rozwiązań.
> Mogę tam się tylko dowiedzieć jak uzyć Ajaxa do zrealizowania transmisji
> asynchronicznej co kompletnie mnie nie interesuje. Ja chcę wiedzieć jak w
> JS zrealizować transmisję asynchroniczną bez stosowania jakichkolwiek
> bibliotek. Nie chcę stosować Ajaxa ani się go uczyć.
https://developer.mozilla.org/pl/AJAX/Na_pocz%C4%85t
ek
Popatrz na Krok 1: "powiedz "Poproszę!", czyli jak wykonać zapytanie
HTTP" - to jest dokładnie to, czego potrzebujesz. Gdybyś do tego miejsca
doczytał to nie napisałbyś powyższych zdań.
> Nie rozumiem za bardzo skąd jest taki opór w Was aby w 3 zdaniach opisać
> jak najlepiej zrealizować zagadnienie bez tych bibliotek? Skąd ten
> problem?
Nie ma takiej potrzeby, ponieważ już to zostało świetnie opisane na
Mozilla Developer Center. I to w dodatku po polsku. Co się rzadko zdarza.
--
Cezary Tomczyk
http://www.ctomczyk.pl/
-
12. Data: 2012-02-03 10:00:29
Temat: Re: JS - asynchroniczna komunikacja
Od: Cezary Tomczyk <c...@g...pl>
W dniu 2012-02-03 00:38, Marek pisze:
> Dnia Thu, 2 Feb 2012 13:45:24 +0100, M.G. napisał(a):
>
>>>
>>> Czytaj ze zrozumieniem. Nie chcę megabajtów kodu analizować aby zobaczyć
>>> jak to działa.
>>
>> No skoro uważasz, że to jedyna droga.
>
> Nie uważam lecz nie znam innej. Wątek zainicjowałem po to aby dowiedzieć
> się czy są lepsze drogi bo w Googlach nie znalazłe niczego na ten temat.
Bo metoda XMLHttpReuest jest wbudowana w przeglądarki i nie musisz nic
nowego wymyślać. Zainteresuj się jeszcze WebSockets:
http://dev.w3.org/html5/websockets/
> Wszystko na temat asynchronicznej transmisji powiązane jest z Ajaxem.
[...]
Znajdź inną metodę :-)
--
Cezary Tomczyk
http://www.ctomczyk.pl/
-
13. Data: 2012-02-03 10:03:53
Temat: Re: JS - asynchroniczna komunikacja
Od: "M.G." <k...@t...zna>
On Fri, 3 Feb 2012 00:38:13 +0100, Marek wrote:
> Dnia Thu, 2 Feb 2012 13:45:24 +0100, M.G. napisał(a):
>
>>>
>>> Czytaj ze zrozumieniem. Nie chcę megabajtów kodu analizować aby zobaczyć
>>> jak to działa.
>>
>> No skoro uważasz, że to jedyna droga.
>
> Nie uważam lecz nie znam innej. Wątek zainicjowałem po to aby dowiedzieć
> się czy są lepsze drogi bo w Googlach nie znalazłe niczego na ten temat.
Doprawdy? Właśnie wpisałem temat wątku w Google. Wszystko pod ręką.
[...]
--
M.G.
-
14. Data: 2012-02-03 13:12:22
Temat: Re: JS - asynchroniczna komunikacja
Od: Marek <p...@s...com>
Dnia Fri, 3 Feb 2012 11:03:53 +0100, M.G. napisał(a):
> On Fri, 3 Feb 2012 00:38:13 +0100, Marek wrote:
>
>> Dnia Thu, 2 Feb 2012 13:45:24 +0100, M.G. napisał(a):
>>
>>>>
>>>> Czytaj ze zrozumieniem. Nie chcę megabajtów kodu analizować aby zobaczyć
>>>> jak to działa.
>>>
>>> No skoro uważasz, że to jedyna droga.
>>
>> Nie uważam lecz nie znam innej. Wątek zainicjowałem po to aby dowiedzieć
>> się czy są lepsze drogi bo w Googlach nie znalazłe niczego na ten temat.
>
> Doprawdy? Właśnie wpisałem temat wątku w Google. Wszystko pod ręką.
>
> [...]
Ja szukałem ta:
http://www.google.com/search?hl=pl&q=asynchroniczna+
-ajax#sclient=psy-ab&hl=pl&source=hp&q=java+script+a
synchroniczna+-ajax&pbx=1&oq=java+script+asynchronic
zna+-ajax&aq=f&aqi=&aql=&gs_sm=e&gs_upl=8707l11487l0
l11659l12l12l0l0l0l0l186l1136l11.1l12l0&bav=on.2,or.
r_gc.r_pw.,cf.osb&fp=86c58ce4b267ed9c&biw=1283&bih=8
68
A Ty jak ?
-
15. Data: 2012-02-03 13:26:22
Temat: Re: JS - asynchroniczna komunikacja
Od: Marek <p...@s...com>
Dnia Fri, 03 Feb 2012 11:00:29 +0100, Cezary Tomczyk napisał(a):
> Bo metoda XMLHttpReuest jest wbudowana w przeglądarki i nie musisz nic
> nowego wymyślać. Zainteresuj się jeszcze WebSockets:
> http://dev.w3.org/html5/websockets/
Sprawddziłem. Pod IE9 nie działa niestety.Tak więc ta metoda odpada.
http://caniuse.com/#feat=websockets
>
>> Wszystko na temat asynchronicznej transmisji powiązane jest z Ajaxem.
> [...]
>
> Znajdź inną metodę :-)
Niniejszy wątej jest ehektem takich poszukiwań. Widzę jednak, że metoda
zadawania pytań na forum nie sprawdza się. :-) Czasem jest jakiś taki opór
w udzielaniu odpowiedzi. Bezsensowne odsyłania do Googli kiedy nie
znalazłem tam niczego po przeanalizowaniu kilkudziesięciu linków. Nawet
zero podpowiedzi czego w Googlach powinienem szukać. Nie rozumiem tego
szczerze mówiąc.
Chyba faktycznie łatwiej będzie nauczyć się np. Ajaxa, popatrzeć jak to
działa i wyrzucić do śmietnika prawie całość tej wiedzy po to tylko aby
zdobyć informację na temat, który mnie interesuje będący malutkim
fragmentem w ogromie Ajaxa.
-
16. Data: 2012-02-03 13:51:33
Temat: Re: JS - asynchroniczna komunikacja
Od: Marek <p...@s...com>
Dnia Fri, 03 Feb 2012 09:44:58 +0100, Artur Muszyński napisał(a):
> Opór jest, ale z twojej strony.
Czym się przejawiający?
> Zadałeś pytanie, "jak realizuje się asynchroniczną komunikację z
> serwerem w JS". Odpowiedź brzmi: "Za pomocą AJAX-a".
Właśnie: słowo klucz "jak" - czyli algorytm, krok po kroku. Ajax to nie
jest język programowania. On jest napisany w JS i o JS ja się pytam.
Konkretnie pytam się jak np. Ajax albo cokolwiek innego realizuje w JS
(!!!) transmisję asynchroniczną. Nie interesują mnie nazwy obiektów w
Ajaxach i innych lecz o algorytm jaki można zastosować. To się da opisać w
2-3 zdaniach! Sam Ajax kompletnie mnie nie interesuje, co potem
podkreślałem wielokrotnie.
> Za transmisję
> async. odpowiada jedna (!) standardowa funkcja w JS, a jej opis i
> trywialny sposób użycia znajdziesz pod pierwszym (!) wynikiem google.
Heh, ale pierwszym w poszukiwaniu czego? Frazy takiej jak szukałem czyli
java script asynchroniczna -ajax ?
Dostaję wtedy linki do helpa Googli, że Google Analytics z tego korzysta.
Albo, że setInterval() pracuje asynchronicznie, albo, że jakieś skrypty
można załadować asynchronicznie w onLoad, albo obsługa zdarzeń
asynchronicznych typu ruch myszki i kupa innych śmieci nie na temat.
Nie możesz napisać jasno nazwy tej funkcji w JS? Może znam tą funkcję lecz
nie znajduję jej zastosowania w tym aspekcie. Nie bierzesz tego pod uwagę?
Po co cała ta dyskusja?
Masz tu listing funkcji:
http://msdn.microsoft.com/en-us/library/6fw3zxcx(v=v
s.94).aspx
I co z niego wynika?
-
17. Data: 2012-02-03 14:08:54
Temat: Re: JS - asynchroniczna komunikacja
Od: "M.G." <k...@t...zna>
On Fri, 3 Feb 2012 14:26:22 +0100, Marek wrote:
[...]
> Chyba faktycznie łatwiej będzie nauczyć się np. Ajaxa, popatrzeć jak to
> działa i wyrzucić do śmietnika prawie całość tej wiedzy po to tylko aby
> zdobyć informację na temat, który mnie interesuje będący malutkim
> fragmentem w ogromie Ajaxa.
Nauka to ogólnie trudny proces.
--
M.G.
-
18. Data: 2012-02-03 14:09:11
Temat: Re: JS - asynchroniczna komunikacja
Od: "M.G." <k...@t...zna>
On Fri, 3 Feb 2012 14:12:22 +0100, Marek wrote:
> Dnia Fri, 3 Feb 2012 11:03:53 +0100, M.G. napisał(a):
>
>> On Fri, 3 Feb 2012 00:38:13 +0100, Marek wrote:
>>
>>> Dnia Thu, 2 Feb 2012 13:45:24 +0100, M.G. napisał(a):
>>>
>>>>>
>>>>> Czytaj ze zrozumieniem. Nie chcę megabajtów kodu analizować aby zobaczyć
>>>>> jak to działa.
>>>>
>>>> No skoro uważasz, że to jedyna droga.
>>>
>>> Nie uważam lecz nie znam innej. Wątek zainicjowałem po to aby dowiedzieć
>>> się czy są lepsze drogi bo w Googlach nie znalazłe niczego na ten temat.
>>
>> Doprawdy? Właśnie wpisałem temat wątku w Google. Wszystko pod ręką.
>>
>> [...]
>
> Ja szukałem ta:
> http://www.google.com/search?hl=pl&q=asynchroniczna+
-ajax#sclient=psy-ab&hl=pl&source=hp&q=java+script+a
synchroniczna+-ajax&pbx=1&oq=java+script+asynchronic
zna+-ajax&aq=f&aqi=&aql=&gs_sm=e&gs_upl=8707l11487l0
l11659l12l12l0l0l0l0l186l1136l11.1l12l0&bav=on.2,or.
r_gc.r_pw.,cf.osb&fp=86c58ce4b267ed9c&biw=1283&bih=8
68
>
> A Ty jak ?
Napisałem jak.
--
M.G.
-
19. Data: 2012-02-03 14:27:02
Temat: Re: JS - asynchroniczna komunikacja
Od: Marek <p...@s...com>
Dnia Fri, 03 Feb 2012 10:56:27 +0100, Cezary Tomczyk napisał(a):
> Z podanego przeze mnie linku dowiesz się właśnie to, czego potrzebujesz.
> Ajax to nie jest żaden język programowania tylko protokół komunikacyjny.
> Ajax to akronim od Asynchronous JavaScript and XML.
Rozumiem ... choć nie do końca. Czy nie jest to przypadkiem oprogramowanie
w zwykłym JS zrobione?
Funkcja inicjująca:
if (window.XMLHttpRequest) { // Mozilla, Safari, Opera ...
http_request = new XMLHttpRequest();
} else if (window.ActiveXObject) { // IE
http_request = new ActiveXObject("Microsoft.XMLHTTP");
}
Już na to wskazuje. Pewnie analiza kodu źródłeowego obiektu ActiveXObject
przyniasłaby mi odpowiedź i pewnie tak zrobię. Sądziłem, że będzie szybciej
zadać pytanie na forum.
> Z artykułu dowiedziałbyś się też, że potrzebna Ci jest jedna metoda:
> XMLHttpRequest.
IE9 tego nie obsługuje więc odpada takie rozwiązania. Ajax musi mieć więc
jakąś alternatywę skoro działa to również na IE.
> Chyba mogę pokusić się o stwierdzenie, że 99%
> przeglądarek obsługuje XMLHttpRequest. "Ale"! Z linka dowiedziałbyś
> dalej też to, że, niestety, inicjacja tego obiektu jest różna w
> przeglądarkach.
Oj, chyba to nie są wiarygodne dane. W/g:
http://caniuse.com/#search=XMLHttpRequest
IE nie obsługuje tego obiektu. W/g
http://ranking.pl/pl/rankings/web-browsers.html
IE stanowi jaieś 20% rynku więc zaledwie 80% przeglądarek (zainstalowanych
na komputerach) a nie 99% to obsługuje.
> Dlatego jeśli programujesz pod konkretną przeglądarkę (np. jakiś
> wewnętrzny projekt firmowy), to nie potrzebujesz żadnych bibliotek. Ale
> jeśli efekt Twojej pracy ma być działający na wielu przeglądarkach to 1)
> albo sam napiszesz sobie cross-browserową obsługę protokołu
> XMLHttpRequest, 2) albo skorzystasz z gotowych rozwiązań.
Oooo! Właśnie. Trafiasz w sedno. Chcę sobie napisać cos takiego i
potrzebuję wskazówek. W tym wątku pytam w zasadzie o te wskazówki.
Potrzebuję banalny mechanizm do załadowania fragmentu strony wskutek
jakiegoś zdarzenia.
Wymyśliłem roboczo coś takiego, że JS utworzy niewidocznego iframe'a
przesyłając zapytanie do serwera GET'em (bo chyba POSTem się nie da, a może
się da gdy w iframie zrobiłbym samosubmitujący się formularz - muszę to
sprawdzić). Odpowiedź serwera trafi do tego iframe'a w postaci kodu HTML,
który potem przekopiuję w docelowe miejsce strony WWW. Następnie usunę
iframe'a programowo albo w ogóle zrobę z niego cos w rodzaju modalnego
okna.
>
>> Mogę tam się tylko dowiedzieć jak uzyć Ajaxa do zrealizowania transmisji
>> asynchronicznej co kompletnie mnie nie interesuje. Ja chcę wiedzieć jak w
>> JS zrealizować transmisję asynchroniczną bez stosowania jakichkolwiek
>> bibliotek. Nie chcę stosować Ajaxa ani się go uczyć.
>
> https://developer.mozilla.org/pl/AJAX/Na_pocz%C4%85t
ek
>
> Popatrz na Krok 1: "powiedz "Poproszę!", czyli jak wykonać zapytanie
> HTTP" - to jest dokładnie to, czego potrzebujesz. Gdybyś do tego miejsca
> doczytał to nie napisałbyś powyższych zdań.
Przeczytaj naszą konwersację. Cytujesz moje słowa, w których jest " Ja chcę
wiedzieć jak w JS zrealizować transmisję asynchroniczną bez stosowania
jakichkolwiek bibliotek". Tymczasem co jest pod tym linkiem? Odpowiedź: jak
używać bibliotekę Ajaxa.
Dlaczego więc czynisz mi zarzut z tego, że nie doczytałem czegoś? Sam
przyznasz, że komentujesz to w sposób absurdalny.
Z linku jaki mi dałeś bardziej zainteresowałbym się kodem źródłowym
ActiveXObject bo pewnie tam drzemie odpowiedź na moje pytania. Jednakże już
wspominałem - wolę uniknąć analizowania złożonego cudzego kodu, bo często
jest on tak nieczytelny, że mnóstwo czasu trzeba poświęcić na uzyskanie
prostej odpowiedzi.
>
>> Nie rozumiem za bardzo skąd jest taki opór w Was aby w 3 zdaniach opisać
>> jak najlepiej zrealizować zagadnienie bez tych bibliotek? Skąd ten
>> problem?
>
> Nie ma takiej potrzeby, ponieważ już to zostało świetnie opisane na
> Mozilla Developer Center. I to w dodatku po polsku. Co się rzadko zdarza.
Ale cały czas mówisz o Ajaxie, tak? Dla mnie Ajax to biblioteka.
-
20. Data: 2012-02-03 14:47:45
Temat: Re: JS - asynchroniczna komunikacja
Od: Marek <p...@s...com>
Dnia Fri, 3 Feb 2012 15:08:54 +0100, M.G. napisał(a):
>
> Nauka to ogólnie trudny proces.
A już w szczególności gdy wiesz, że kompletnie bezużyteczna będzie. Widzę,
że nie obejdzie się bez zakupu warsztatu stolarskiego po to aby deskę sobie
przyciąć... no trudno...
Dzięki za pogawędkę.